我有两个对象字面量如下:
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']
我显然可以使用循环并查看其他对象中是否存在相同名称的键,但是我想知道这是否适合于使用一些函数式编程和map / filter / reduce方法? 我自己没有做过太多的函数式编程,但我有一种感觉,认为可能存在一个干净而聪明的解决方案来解决这个问题。
Object.keys
将键作为数组获取。 - SwiffyObject.keys
或者是 lodash 的_.keys
。代码为:_.intersection(_.keys(firstObject), _.keys(secondObject));
- Xotic750