Я хотел бы выполнить итерацию через два массива, вычитая одно значение массива из другого и добавив их конкретные значения различий в объект. Так, например, у меня есть:
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(var i=0; i<other.length; i++) {
answer[i] = [];
for(var e=0; e<4; e++){
answer[i][e] = boom[e] - other[i][e];
}
}
Вам нужно инициализировать 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];
}
}
Демо: скрипка