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})