【问题标题】:Check if all items can be found in another array检查是否可以在另一个数组中找到所有项目
【发布时间】:2016-05-02 19:01:55
【问题描述】:

我需要检查一个数组中的所有项目是否可以在另一个数组中找到。也就是说,我需要检查一个数组是否是另一个数组的子集。

例子:

var array = [1, 2, 5, 7];
var otherArray = [1, 2, 3, 4, 5, 6, 7, 8];

比较上面这两个数组应该返回 true,因为 array 中的所有项目都可以在 otherArray 中找到。

var array = [1, 2, 7, 9];
var otherArray = [1, 2, 3, 4, 5, 6, 7, 8];

比较上面的这两个数组应该返回 false,因为在 array 中的项目之一在 otherArray 中找不到。

我尝试在 for 循环中使用 indexOf 方法,但没有成功。 我希望有人能帮助我。 :)

【问题讨论】:

  • 你是否提前知道数组是否总是排序的?
  • 如果otherArray很大,最好将其转换为以元素为键的对象。

标签: javascript arrays


【解决方案1】:

使用Array.prototype.every:

every() 方法测试数组中的所有元素是否通过提供的函数实现的测试。

var array = [1, 2, 7, 9];
var otherArray = [1, 2, 3, 4, 5, 6, 7, 8];

var isSubset = array.every(function(val) {
  return otherArray.indexOf(val) >= 0;
})

document.body.innerHTML = "Is array a subset of otherArray? " + isSubset;

【讨论】:

    猜你喜欢
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多