【发布时间】:2016-03-27 08:29:47
【问题描述】:
我有两个像这样的对象字面量:
var firstObject =
{
x: 0,
y: 1,
z: 2,
a: 10,
b: 20,
e: 30
}
var secondObject =
{
x: 0,
y: 1,
z: 2,
a: 10,
c: 20,
d: 30
}
我想得到这两个对象字面量的键的交集,如下所示:
var intersectionKeys = ['x', 'y', 'z', 'a']
我显然可以做一个循环,看看另一个对象中是否存在同名的键,但我想知道这对于某些函数式编程和映射/过滤/减少使用是否是一个很好的例子?我自己没有做过那么多函数式编程,但我有一种感觉,对于这个问题,可以有一个干净而聪明的解决方案。
【问题讨论】:
-
Lodash 有 intersection 作为一种方法,如果你还不知道的话。
-
@Xotic750 似乎只适用于数组?话又说回来,可能有很多像
Object.keys这样的方法来获取作为数组的键。 -
当然,你需要每个对象的键,就像下面的答案一样,
Object.keys或 lodash 有_.keys。_.intersection(_.keys(firstObject), _.keys(secondObject));
标签: javascript object functional-programming big-o intersection