Javascript 如何知道两个数组(一个嵌套在一个对象中)之间有多少匹配项?
我需要知道人与人之间有多少匹配项。比较数组和名称数组,然后创建包含此数据的新对象Javascript 如何知道两个数组(一个嵌套在一个对象中)之间有多少匹配项?,javascript,arrays,reactjs,object,Javascript,Arrays,Reactjs,Object,我需要知道人与人之间有多少匹配项。比较数组和名称数组,然后创建包含此数据的新对象 names = [ 'Juan', 'Old'] people = [ {compare: ['Juan', 'Old'], Age: 70}, {compare: ['Juan', 'Young'], Age: 20} ] 预期产出: peopleNew = [ {compare: ['Juan', 'Old'], 'Age': 70, 'MATCHES': 2}, {compare: ['J
names = [ 'Juan', 'Old']
people = [
{compare: ['Juan', 'Old'], Age: 70},
{compare: ['Juan', 'Young'], Age: 20}
]
预期产出:
peopleNew = [
{compare: ['Juan', 'Old'], 'Age': 70, 'MATCHES': 2},
{compare: ['Juan', 'Young'], 'Age': 20, 'MATCHES': 1}
]
此代码循环遍历每个数组,并使用array.includes()检查每个项是否相等:
const peopleNew = people.map(obj => {
let matches = 0;
obj.compare.forEach(name => {
if (names.includes(name)) {
matches++; // Increase count by 1
}
})
// Create new object from original with new 'matches' property
return Object.assign({}, obj, { matches });
});
constpeoplenew=people.map({compare,Age})=>({compare,Age,MATCHES:compare.filter(v=>names.includes(v)).length})你试过什么吗?