我在javascript项目中工作。
我现在关于搜索合并两个对象的选项,因为第二个对象只会丢弃第一个对象的字段而不会添加第二个没有的新字段。
类似的东西:
const firstObj = {name:'jon', age:'6}
const secondObj = {name:'nir', mark:'100%'}
const mergedObj = leftMerge(firstObj, secondObj);
所以我喜欢mergedObj:
{name:'nir', age:'6'}
我有什么方法可以使用javascript(我使用EcmaScript 6)或使用immutable.js库吗?
答案 0 :(得分:3)
没有内置功能(Object.assign
合并所有属性),但您可以自己轻松编写它:
function leftMerge(a, b) {
const res = {};
for (const p in a)
res[p] = (p in b ? b : a)[p];
return res;
}
答案 1 :(得分:2)
迭代firstObj
个密钥,如果它具有这些属性,则从secondObj
获取值,如果不从firstObj
获取值:
const firstObj = {name:'jon', age:'6'}
const secondObj = {name:'nir', mark:'100%'}
const leftMerge = (a, b) => Object.keys(a).reduce((r, key) => (r[key] = (key in b ? b : a)[key], r), {});
const mergedObj = leftMerge(firstObj, secondObj);
console.log(mergedObj);