У меня есть массив элементов объекта JavaScript внутри. Вот пример:
var contacts =[{"id":1,"first":"Mike","last":"Johnson","email":"[email protected]","phone":"(203) 567-9055","status":1},{"id":2,"first":"John","last":"Dunn","email":"[email protected]","phone":"(319) 451-7889","status":1},{"id":3,"first":"Lisa","last":"Morgan","email":"[email protected]","phone":"(508) 233-8908","status":1},{"id":4,"first":"Dave","last":"Hart","email":"[email protected]","phone":"(509) 874-9411","status":1}];
Мне нужно вставлять/обновлять записи в этот массив. Я не уверен, что лучше всего проверить, существует ли запись в этом массиве. Если существует, обновите объект js, если нет, создайте новый id
. В идеале этот идентификатор должен быть целым числом и начинаться после самого высокого текущего идентификатора в объекте js. Таким образом, в приведенных выше данных наибольшее значение идентификатора равно 4
. Если я вставлю новую запись id
, новая запись должна быть 5
. Есть ли хороший способ добиться этого с помощью JavaScript?
function saveContact(){
var frmObject = $(this),
frmKey = $("#frm_id").val(),
formData = frmObject.serialize(),
contactRecord = contacts.find(item => item.id === Number(frmKey));;
if (contactRecord) {
contacts[frmKey] = getJSON(frmObject.serializeArray()); // If already exist in array then update object
}else{
frmKey = 'generate new id';
contacts[frmKey] = getJSON(frmObject.serializeArray()); // If doesn't exist generate new key and insert object in array
}
}
.find
каждый раз не кажется лучшей идеей. (Не имеет значения на самом деле, но код будет чище) - person CertainPerformance   schedule 02.08.2018id
, это самая важная часть для меня. - person espresso_coffee   schedule 02.08.2018