2015-03-02 52 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中的数组和对象是一个基本主题,可以在网上随处找到;)