javascript - 比较两个数组并返回重复值

标签 javascript arrays meteor underscore.js

如何检索存在于同一文档的两个不同数组中的元素。

例如。在帖子集合中,文档具有“interestbycreator”和“interestbyreader”字段。每个字段都包含用户 ID。

'interestbycreator':  //an array of ids here. IdA, idB, IdC, IdD, IdE,
'interestbyreader':  //an array of ids here. IdB, idE, iDF

基本上我希望找到存在于两个数组中的所有 id,因此应该是 IDB 和 IdE。

我能够从带下划线的数组中提取所有值并将它们存储在变量中。他们可以通过这种方式相互比较并返回重复项吗?或者有人可以阐明另一种解决方案。

从“interestbyreader”中检索所有 ID 的示例

var interestbypostcreater = Posts.find({_id: Meteor.user().profile.postcreated[0]}, {fields: {interestbyreader: 1}}).fetch();
var interestedReaderIds = _.chain(interestbypostcreator).pluck('interestbyreader').flatten().value();

假设我将另一个数组“interestbycreator”存储在一个名为 interestIdcreator 的变量中,是否可以比较它们以找到重复项并返回这些重复项?

最佳答案

作为saimeunt当您可以访问下划线时在评论中说使用 intersection但您也可以使用纯 JavaScript 来完成:

var x = ['IdA', 'idB', 'IdC', 'IdD', 'IdE'];
var y = ['idB', 'IdE', 'IdF'];

var z = x.filter(function(val) {
  return y.indexOf(val) != -1;
});

console.log(z);

数组 z 包含双项。

归功于 https://stackoverflow.com/a/14930567/441907

关于javascript - 比较两个数组并返回重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26343295/

相关文章:

javascript - 当不存在构造函数时, `new` 调用的结果。 ES6 类

node.js - nodeJS-Express 或 Meteor 或 Derby

javascript - 使用 jquery 选择取消选择复选框

javascript - 在 Acrobat 中重新选中复选框

javascript - 如何在 Javascript 中解析数组中的对象

c# - 你如何询问一个数组是否包含一个特定的类?

javascript - 将数组的元素附加到字符串

javascript - 具有多个字段的表单提交

javascript - 如何使用javascript和css绘制圆形进度条

javascript - HTML5/jQuery - 页面滚动到输入值