'功能上'根据另一个对象键/值从对象中删除值/键

时间:2016-07-01 13:59:00

标签: javascript functional-programming lodash

这是两个对象:

object1: {
    email: somevalue
    url: somevalue
    description: somevalue
}

object2: {
    email: someothervalue
    url: someothervalue
}

目标,从object1中移除任何键/值对,对于object2上不存在的每个键。对象无法合并,因为每个对象的值都非常不同。

这可以通过传统的命令式结构来完成,但我正在寻找一种更具功能性的结构。在lodash库的帮助下,这样做的方式。 你知道一种方法吗,结果将是:

object1: {
    email: somevalue
    url: somevalue
}

2 个答案:

答案 0 :(得分:3)

你真的不需要lodash。

Object.keys(object1).forEach(function(key) {
  if (!(key in object2))
    delete object1[key];
});

答案 1 :(得分:2)

使用lodash,您可以执行以下操作:

_.pick(object1, Object.keys(object2))

这会产生新对象