Не добавляться массив в массив

Подскажите пожалуйста, почему не добавляться массив в массив.

var array = [{"id": 1, "name": "test"},{"id": 2, "name": "test2"}];
array[0].concat({"form_id": 1});
console.log(array);


Ответы (1 шт):

Автор решения: vsemozhebuty
  1. Метод concat есть только у массивов, вы же пытаетесь вызвать его с первым элементом массива, который не является массивом.
  2. Метод concat возвращает новый массив, а не меняет массив, для которого он был вызван, его результат нужно куда-то присваивать.

Из вашего кода не совсем ясно, что вы пытаетесь сделать.

Если вы хотите добавить поле в первый элемент массива, можно так:

var array = [{"id": 1, "name": "test"},{"id": 2, "name": "test2"}];
array[0].form_id = 1;
console.log(array);

Или так:

var array = [{"id": 1, "name": "test"},{"id": 2, "name": "test2"}];
Object.assign(array[0], {"form_id": 1});
console.log(array);

Если вы пытаетесь добавить новый элемент в массив, вашим способом можно так:

var array = [{"id": 1, "name": "test"},{"id": 2, "name": "test2"}];
array = array.concat({"form_id": 1});
console.log(array);

Но проще так:

var array = [{"id": 1, "name": "test"},{"id": 2, "name": "test2"}];
array.push({"form_id": 1});
console.log(array);

UPD: Решение прояснённого вопроса:

var array = [{"id": 1, "name": "test"},{"id": 2, "name": "test2"}];
array[0].forms = [{"form_id": 1}];
console.log(array);

→ Ссылка