Добавить элемент к существующему объекту с индексом и значением

0

Я хотел бы выполнить итерацию через два массива, вычитая одно значение массива из другого и добавив их конкретные значения различий в объект. Так, например, у меня есть:

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 объекта. Как я могу это сделать?

Теги:
arrays

2 ответа

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

Вам нужно инициализировать 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];
    }
}

Демо: скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню