我有 2 个数组,形式如下:
array1 = [{key1: value1}, {key1: value2}, ...];
array2 = [{key2: value0}, {key2: value2}, ...];
两个数组中的对象键不同,但值可能匹配。我想编写一些代码来获取两个数组之间的交集,在上面的示例中,它应该返回:[value2]
。
我尝试使用:
array1.filter(function(n)) {
return array2.indexOf(n) != -1;
});
但当然我得到了一个空数组,因为键不匹配。是否可以修改上述代码以忽略对象键并仅匹配它们的值?
最佳答案
var kiran = [];
var array1 = [{ key1: 'value1' }, { key1: 'value2' }];
var array2 = [{ key2: 'value0' }, { key2: 'value2' }];
array1.map(function(item1){
array2.map(function(item2){
if(item1.key1 === item2.key2){
kiran.push(item2.key2);
}
})
})
console.log(kiran);
关于javascript - 2 个对象数组的值的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41876877/