У меня есть несколько объектов с одинаковой структурой; некоторые из них имеют нулевые значения для некоторых полей, тогда как один из объектов (здесь obj2) имеет значения для поля, которое имеет нулевые значения в других объектах; Я хочу, чтобы объединить их ро и cosider тот, который имеет значение:Самый чистый способ слияния объектов
var obj2 = {
options: [
null
],
name: "name1",
}
var obj1 = {
options: [
{"option": "option1"}
],
name: "name1",
}
desiredOutput = {
options: [
{"option": "option1"}
],
name: "name1",
}
Моя попытка: Я попытался lodash; но prpoblem с lodash заключается в том, что порядок имеет эффекты; то есть, какой бы объект ни появился, последний перезаписывает предыдущие для указанного поля:
Я пробовал lodash; здесь myArray представляет собой массив объектов obj1, obj2, ...
var newResults = {};
for (var i = 0; i < myArray.length; i++) {
newResults = lodash.extend(newResults, myArray[i]);
}
Какое самое чистое решение для этого? Благодаря
Чтобы уточнить, у вас будет массив объектов, таких как 'obj1' и' obj2', и вы хотите объединить все объекты в массиве, чтобы любой массив 'options', который содержит' null', будет переопределен следующим объектом в массиве? – lukewestby
Точно, но массив параметров, который содержит null, будет переопределен не обязательно следующим объектом в массиве, фактически объектом, который имеет значения для этого поля (параметры) –
Таким образом, массив параметров должен быть переопределен первым объектом вправо который не содержит 'null' – lukewestby