Как добавить новый объект (пару ключ-значение) в массив в javascript? У меня есть массив как: items=[{'id':1},{'id':2},{'id':3},{'id':4}]; Как добавить новую пару {'id':5} в массив? Ответ 1 Используйте .push: items.push({'id':5}); Ответ 2 .push() добавит элементы в конец массива. Используйте .unshift(), если нужно добавить какой-либо элемент в начало массива, т.е. items.unshift({'id':5}); Demo: items = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}]; items.unshift({'id': 0}); console.log(items); Ответ 3 Иногда .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}] , Ответ 4 Если вы работаете с 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"}]
Ответ 2 .push() добавит элементы в конец массива. Используйте .unshift(), если нужно добавить какой-либо элемент в начало массива, т.е. items.unshift({'id':5}); Demo: items = [{'id': 1}, {'id': 2}, {'id': 3}, {'id': 4}]; items.unshift({'id': 0}); console.log(items);
Ответ 3 Иногда .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}] ,
Ответ 4 Если вы работаете с 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"}]