我有一个像这样的数组
arr1 =
[
{A: 'red', B: 'blue'},
{Q: 'green', R: 'blue'},
{B: 'green', M: 'red'},
{Q: 'white', R: 'blue'},
...
]
每个对象都有两个键/值对,一个字母和颜色。我有另一个像这样的数组
filter=
[
{A: 'val', B: 'someval'},
{B: 'anothervalue', M: 'value'}
]
是否可以过滤第一个数组,使得最终结果是一个仅包含与第二个数组具有相同键的对象的数组。 (没有 for 或 while 循环)
在这种情况下,它将是:
[
{A: 'red', B: 'blue'},
{B: 'green', M: 'red'}
]
所以我想要这样的东西:
let filteredArr = arr1.filter(obj =>
Object.keys(obj) == Object.keys(filter[someKey]));
但我不知道如何在不循环所有键的情况下执行此操作filter
.