我想迭代两个数组,从另一个数组中减去一个数组值,并将它们的特定差值添加到对象中。例如,我有:
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}
boom
从other
中的最后一个数组中减去Object [{0: [ 0, 0, 0, 0]},
{1: [-1,-1,-1,-1]},
{2: [-5,-5,-5,-5]}];
我想要的是什么,我认为我非常接近它是:
answer
您可以看到它会将第二个for循环的每次迭代的结果添加到对象{{1}}。我怎么能做到这一点?
答案 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