我有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/

10-11 22:35
查看更多