2014-04-06 139 views
0

这里是我的代码:我可以在JavaScript中设置一个变量到一个变量组合吗?

var album1 = "First Album name"; 
var album2 = "Second Album Name"; 
var album3 = "Third Album Name"; 
var album4 = "Fourth Album name"; 
var album5 = "Fifth Album name"; 

var currentAlbumCtr = 1; 
var currentAlbum = album + currentAlbumCtr; 

currentAlbum应设置为album1如果currentAlbumCtr为1。谁能帮助?

+0

有读到这里... http://www.w3schools.com/js/js_obj_array.asp –

+4

您应创建一个相册阵列,以便您可以获得特定索引 – xav

+2

http://eloquentjavascript.net/chapter4.html – Bergi

回答

3

你可以使用eval来达到你想要的,但这可能是错误的做法。为什么不使用数组:

var album = []; 
album[1] = "First Album name"; 
album[2] = "Second Album Name"; 
album[3] = "Third Album Name"; 
album[4] = "Fourth Album name"; 
album[5] = "Fifth Album name"; 

currentAlbumCtr = 1; 
currentAlbum = album[currentAlbumCtr]; 

,或者,

var album = { 
    "1": "First Album name"; 
    "2": "Second Album Name"; 
    "3": "Third Album Name"; 
    "4": "Fourth Album name"; 
    "5": "Fifth Album name"; 
}; 

甚至

var album = [ 
    "First Album name", 
    "Second Album Name", 
    "Third Album Name", 
    "Fourth Album name", 
    "Fifth Album name" 
]; 

currentAlbumCtr = 1; 
currentAlbum = album[currentAlbumCtr-1]; 

注意在最后一条语句-1因为数组通常从0

+2

您的数组指数很奇怪。为什么不使用数组字面量? – Bergi

+0

最接近OP的原始代码。跳过索引没有任何问题。 –

+1

...除了'album.length'是'6'吗? – Bergi

-1
索引
var currentAlbum = eval("album" + currentAlbumCtr); 
+0

这就是为什么'eval'是邪恶的。 – Bergi

+0

在这种情况下,eval不是邪恶的,ps:那可能没有-1,它的工作解决方案仍然是 – Smokie

+2

不,这正是['eval'是个坏主意]的情况(http://stackoverflow.com/ a/87260/1048572),这值得赞扬。特别是在向学习者介绍时:有一天他会学习'eval'是什么,但他需要首先理解数组。 – Bergi

0

currentAlbum应设置为album1如果currentAlbumCtr为1

if (currentAlbumCtr == 1) { 
    currentAlbum = album1; 
} 
0

不完全知道你是问什么。 this工作吗?

脚本:

var albums = 
      [ "album1", 
      "album2", 
      "album3" ]; 

$("#clickme").click(function(){ 
    var currentAlbum = parseInt($("#album_number").val()) % albums.length; 
    alert(albums[currentAlbum]); 
}) 

HTML:

<button id="clickme">click!</button> 
<input id="album_number"></input> 
+0

太多的jQuery :-) – Bergi

+0

@Bergi那么,这只是为了获取输入值。我不确定OP想要设置它。 – royhowie

相关问题