如果不在另一个数组中,则从数组中移除

3
var allowedIds = [1000, 1001, 1002, 1003, 1004];
var idsToCheck = [1000, 1001, 1005, 1006];

我希望找到一种方法,从arrayToCheck中删除1005和1006这两个id,因为它们不在allowedIds数组中。
任何帮助都将不胜感激。
谢谢!

在要检查的id数组上执行 .filter 操作。您可以使用 .indexOf 过滤掉不在allowedIds中的值。 - Jalil
1个回答

11

您可以使用Array.prototype.filter()来迭代idsToCheck,以过滤掉不在allowedIds中的所有ID。例如:

const checkedIds = idsToCheck.filter(id => allowedIds.includes(id));
注意:使用 ES6 特性:箭头函数Array.prototype.includes()。若要在旧版浏览器中使用,请检查兼容性。
这里是一个更好的浏览器兼容性的替代实现:
var checkedIds = idsToCheck.filter(function(id) {
  return allowedIds.indexOf(id) > -1;
});

太好了!这两个都非常有帮助。谢谢! - user5850963
你应该将这个问题标记为正确,因为它对你起作用了。 - thanks_in_advance

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接