使用索引和值向现有对象添加元素

时间:2013-12-03 05:59:52

标签: javascript jquery arrays

我想迭代两个数组,从另一个数组中减去一个数组值,并将它们的特定差值添加到对象中。例如,我有:

var answer = [];
var boom = [1,2,3,4];
var other = [[1,2,3,4],
             [2,3,4,5],
             [6,7,8,9];

for(var i=0; i<other.length; i++) {
    for(var e=0; e<4; e++){
        answer[e] = boom[e] - other[i][e];
    }
}

这给我一个输出:

Object {0: -5, 1: -5, 2: -5, 3: -5} 

boomother中的最后一个数组中减去Object [{0: [ 0, 0, 0, 0]}, {1: [-1,-1,-1,-1]}, {2: [-5,-5,-5,-5]}]; 我想要的是什么,我认为我非常接近它是:

answer

您可以看到它会将第二个for循环的每次迭代的结果添加到对象{{1}}。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:1)

for(var i=0; i<other.length; i++) {
    answer[i] = [];
    for(var e=0; e<4; e++){
        answer[i][e] = boom[e] - other[i][e];
    }
}

答案 1 :(得分:1)

您需要将answer初始化为对象而不是数组,还需要创建一个代表other

中每组值的新答案数组
var answer = {};
var boom = [1, 2, 3, 4];
var other = [
    [1, 2, 3, 4],
    [2, 3, 4, 5],
    [6, 7, 8, 9]
];

for (var i = 0; i < other.length; i++) {
    var temp = answer[i] = {};
    for (var e = 0; e < 4; e++) {
        temp[e] = boom[e] - other[i][e];
    }
}

演示:Fiddle