2015-03-02 84 views
-4
var myArray = []; 

myArray[0].binary = 'qweqwe'; 
myArray[0].src = 'qweqwe'; 

myArray[1].binary = 'zxczxc'; 
myArray[1].src = 'zxczxc'; 

myArray[2].binary = 'asdasd'; 
myArray[2].src = 'asdasd'; 

console.log(myArray); 

請幫助我...這不是爲什麼?其他解決方案?因爲我需要它很糟糕...需要它快速請..Javascript - 多維設置值不起作用

+0

爲什麼downvote?我需要幫助,請注意不要downvote沒有... – 2015-03-02 08:33:52

+0

在設置屬性爲對象之前,你應該創建空的對象像這樣myArray [0] = {}; myArray [1] = {}; myArray [2] = {}; – 2015-03-02 08:33:53

回答

0

myArray[0].binary = 'qweqwe';?您正在設置未定義的屬性binary

所以不是嘗試像這樣

var myArray = []; 
myArray[0] = {} 
myArray[0]["binary"] = 'qweqwe'; 
myArray[0]["src"] = 'qweqwe'; 

myArray[1] = {} 
myArray[1]["binary"] = 'zxczxc'; 
myArray[1]["src"] = 'zxczxc'; 

myArray[2] = {} 
myArray[2]["binary"] = 'asdasd'; 
myArray[2]["src"] = 'asdasd'; 
+1

爲什麼不使用對象初始值設定項?爲什麼在引號中使用屬性名稱? – 2015-03-02 08:41:56

+0

我剛剛發佈了這個猜測,他正在尋找這個,他的代碼與此類似。但接受你的評論。 – dsharew 2015-03-02 08:45:10

0

當你訪問一個不存在的數組項,你得到的價值undefined。您的代碼嘗試將屬性添加到undefined,這是您無法做到的(您會得到TypeError)。

將對象添加到您的陣列,您可以添加對象,可能使用一個對象初始化:

var myArray = []; 

myArray[0] = { 
    binary: 'qweqwe', 
    src: 'qweqwe' 
}; 

myArray[1] = { 
    binary: 'zxczxc', 
    src: 'zxczxc' 
}; 

myArray[2] = { 
    binary: 'asdasd', 
    src: 'asdasd' 
}; 

console.log(myArray); 

實際上,你可以結合那些與數組初始化:

var myArray = [ 
    { 
     binary: 'qweqwe', 
     src: 'qweqwe' 
    }, 
    { 
     binary: 'zxczxc', 
     src: 'zxczxc' 
    }, 
    { 
     binary: 'asdasd', 
     src: 'asdasd' 
    } 
]; 

console.log(myArray); 

...這可能會更清晰,並且具有使它更容易重新排序的優點(例如,在源代碼中,如果您需要將它們放入不同的初始順序中)。或者你可以使用push,以使其更容易重新排序:

var myArray = []; 

myArray.push({ 
    binary: 'qweqwe', 
    src: 'qweqwe' 
}); 

myArray.push({ 
    binary: 'zxczxc', 
    src: 'zxczxc' 
}); 

myArray.push({ 
    binary: 'asdasd', 
    src: 'asdasd' 
}); 

console.log(myArray); 

任何這些作品中,挑選一個最適合你在做什麼。

0

或者乾脆像這樣:

// SET all at once 
var myArray = [ 
{binary:"qweqwe", src:"qweqwe"}, 
{binary:"zxczxc", src:"zxczxc"}, 
{binary:"asdasd", src:"asdasd"} 
]; 

// ADD new key 
myArray[3] = {binary:"ioioio", src:"ioioio"}; 

alert(console.log(myArray); 

PS: 「downvoting」 是因爲你沒有真正嘗試解決的概率。在發佈您的問題之前。 Js中的數組和對象是一個基本主題,可以在網上隨處找到;)