首页 > 解决方案 > JavaScript 获取两个数组中的公共元素

问题描述

我有这个数组eewootags

在此处输入图像描述

我有另一个数组evProductTag,它在下面:

在此处输入图像描述

我正在尝试获取两者共有的 id。

这是我尝试过的:

var tagdataexist = [];
for (var i = 0; i < evProductTag.length; i++) {
  for (var j = 0; j < eewootags.length; j++) {
    if (eewootags[j].name == evProductTag[i].name){
      tagdataexist.push(eewootags[i].id);
    }
  }
}
console.log(tagdataexist);

但这给出了 be193而不是187.
Tag2是名称的共同元素。

请帮忙!

标签: javascriptarrays

解决方案


您的问题出在数组的索引上:您eewootags同时使用i和访问j。您需要始终使用相同的索引!

let eewootags = [
  {id: 193, name: 'Tag 8'},
  {id: 186, name: 'Tag1'},
  {id: 187, name: 'Tag2'},
  {id: 188, name: 'Tag3'},
  {id: 189, name: 'Tag4'},
  {id: 190, name: 'Tag5'},
  {id: 191, name: 'Tag6'},
  {id: 192, name: 'Tag7'},
  {id: 194, name: 'Tag9'}
];
let evProductTag = [
  {name: 'Tag2'},
  {name: 'Tag 3'},
  {name: 'Tag 69'}
];
let tagdataexist = [];
for (let i = 0; i < eewootags.length; i++) {
  for (let j = 0; j < evProductTag.length; j++) {
    if (eewootags[i].name == evProductTag[j].name) {
      tagdataexist.push(eewootags[i].id);
    }
  }
}
console.log(tagdataexist);


推荐阅读