我有一些具有相同结构的物体;其中一些对于某些字段具有空值,而其中一个对象(此处为obj2)具有该字段的值,该字段在其他对象中具有空值;我想ro合并它们和cosider有价值的那个:
var obj2 = {
options: [
null
],
name: "name1",
}
var obj1 = {
options: [
{"option": "option1"}
],
name: "name1",
}
desiredOutput = {
options: [
{"option": "option1"}
],
name: "name1",
}
我的尝试: 我试过lodash;但是与lodash的关系是秩序有效;也就是说,无论哪个对象最后都会覆盖前面提到的字段:
我试过lodash;这里myArray是一个obj1,obj2,...
的数组 var newResults = {};
for (var i = 0; i < myArray.length; i++) {
newResults = lodash.extend(newResults, myArray[i]);
}
这个最干净的解决方案是什么? 感谢
答案 0 :(得分:0)
根据您在问题和评论中解释的内容,我们要完成的是在myArray
中选择options
不包含null
的对象。在这种情况下,我们不需要执行合并,我们只需在数组中搜索所需的对象。
var newResults = _.find(myArray, function (obj) {
return !_.contains(obj.options, null);
});
newResults
将是数组中第一个options
不包含null
的对象。