JavaScript在两个数组中获取公共元素

JavaScript在两个数组中获取公共元素,javascript,arrays,Javascript,Arrays,我有一个数组,它是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){

我有一个数组,它是
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);
var tagdataexist=[];
对于(var i=0;i
但这给出的是
193
,而不是
187

Tag2
是按名称排列的公共元素


请帮忙

您的问题在于数组的索引:您可以使用
i
j
访问
eewootags
。您需要始终使用相同的索引

让eewootags=[
{id:193,名称:'tag8'},
{id:186,名称:'Tag1'},
{id:187,名称:'Tag2'},
{id:188,名称:'Tag3'},
{id:189,名称:'Tag4'},
{id:190,名称:'Tag5'},
{id:191,名称:'Tag6'},
{id:192,名称:'Tag7'},
{id:194,名称:'Tag9'}
];
让evProductTag=[
{name:'Tag2'},
{name:'tag3'},
{name:'标记69'}
];
设tagdataexist=[];
for(设i=0;iconsole.log(tagdataexist)您的错误就在索引上

tagdataexist.push(eewootags[j].id);// j and not i

请将所有数据显示为文本,而不是文本图片。请注意,使用
console.log(JSON.stringify(obj,null,2))
从JavaScript获取数据通常更容易,然后可以复制和粘贴字符串值。请尽量将数据量限制在仅足以说明问题的范围内。