Ответ 1
Используйте .push:
items.push({'id':5});
У меня есть массив как:
items=[{'id':1},{'id':2},{'id':3},{'id':4}];
Как добавить новую пару {'id':5}
в массив?
Используйте .push:
items.push({'id':5});
.push() добавит элементы в конец массива.
Используйте .unshift(), если нужно добавить какой-либо элемент в начало массива, т.е.
items.unshift({'id':5});
Demo:
items = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}];
items.unshift({'id': 0});
console.log(items);
Иногда .concat() лучше, чем .push(), поскольку .concat() возвращает новый массив, тогда как .push() возвращает длину массива.
Поэтому, если вы устанавливаете переменную, равную результату, используйте .concat().
items = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}];
newArray = items.push({'id':5})
В этом случае newArray вернет 5 (длина массива).
newArray = items.concat({'id': 5})
Однако здесь newArray вернет [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}, {'id': 5}] ,
Если вы работаете с jQuery и у вас есть serializeArray, что касается ваших данных формы, например:
var postData = $('#yourform').serializeArray();
// postData (array with objects) :
// [{name: "firstname", value: "John"}, {name: "lastname", value: "Doe"}, etc]
... и вам нужно добавить ключ/значение в этот массив с такой же структурой, например, при публикации в запросе PHP ajax, вот так:
postData.push({"name": "phone", "value": "1234-123456"});
Результат:
// postData :
// [{name: "firstname", value: "John"}, {name: "lastname", value: "Doe"}, {"name":"phone","value":"1234-123456"}]