我有一些具有相同结构的对象。其中一些在某些字段中具有空值,而其中一个对象(此处为obj2)具有在其他对象中具有空值的字段的值;我要ro合并它们,并考虑具有价值的那个:
var obj2 = {
options: [
null
],
name: "name1",
}
var obj1 = {
options: [
{"option": "option1"}
],
name: "name1",
}
desiredOutput = {
options: [
{"option": "option1"}
],
name: "name1",
}
我的尝试:我尝试过lodash;但是lodash的问题是顺序有效果;也就是说,无论哪个对象最后出现,都会覆盖前面提到的字段的对象:
我试过洛达 这里myArray是obj1,obj2,...的数组
var newResults = {};
for (var i = 0; i < myArray.length; i++) {
newResults = lodash.extend(newResults, myArray[i]);
}
最干净的解决方案是什么?谢谢
根据您的问题和评论已经解释了什么,我们正在试图完成的任务是在对象的选择myArray
,其中options
不包含null
。在这种情况下,我们不需要执行合并,只需在数组中搜索所需的对象即可。
var newResults = _.find(myArray, function (obj) {
return !_.contains(obj.options, null);
});
newResults
将是数组中options
不包含的第一个对象null
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句