我有2个主要地图,我想对其进行迭代。如果键相同,那么我想使用_.assign()
覆盖值。例如:
var keyMap1 = {
1: {
id: 1,
name: 'egg'
},
2: {
id: 2,
name: 'bacon'
}
};
var keyMap2 = {
1: {
id: 1,
quantity: 3
},
2: {
id: 2,
quantity: 2
}
};
// something like this, preferably with lodash
var result = _.compareKeys(override, keyMap1, keyMap2);
function override(obj1, obj2){
return _.assign(obj1, obj2)
}
console.log(result);
// => { 1: { id: 1, name: 'egg', quantity: 3 }, 2: { id: 2, name: 'bacon', quantity: 2 } };
最佳答案
如果我了解您的要求,您是否可以仅使用_.merge
进行比较和分配?
var keyMap1 = {
1: {
id: 1,
name: 'egg'
},
2: {
id: 2,
name: 'bacon'
}
};
var keyMap2 = {
1: {
id: 1,
quantity: 3
},
2: {
id: 2,
quantity: 2
}
};
var result = _.merge({}, keyMap1, keyMap2);
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
关于javascript - 如何使用功能编程来遍历一个键映射并与另一个键映射进行比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41787170/