Javascript检查一个数组是否是另一个数组的子集

在许多用例中,知道一个数组是否是另一个数组的子集可能非常有用——虽然人眼通常很明显,但在代码中很难评估。

在下面的代码中,arr2是 的子集arr1arr3不是。

let arr1 = [ 'a', 'b', 'c' ];
let arr2 = [ 'b', 'c' ];
let arr3 = [ 'c', 'd' ];

如果我们想知道一个数组是否是另一个数组的子集,最好的评估方法是使用数组 every 方法。此方法遍历数组中的每个元素并对其执行测试。如果数组中的每个元素都通过了该测试,那么整个every方法将返回 true。

对于每个评估,我们都有一个“父”数组和一个“子集”数组——我们要检查“子集”数组是否完全包含在“父”数组中。

要评估一个数组是否是另一个数组的子集,我们可以every对“子集”数组上的每个元素运行。在every函数中,我们可以测试“父”数组是否包含“子集”数组中的每个元素。如果是,那么every将返回true。否则,它将返回false

这可以通过如下所示的函数轻松完成,如果完全包含在中,checkSubset将返回:true

let arr1 = [ 'a', 'b', 'c' ];
let arr2 = [ 'b', 'c' ];
let arr3 = [ 'c', 'd' ];

let checkSubset = (parentArray, subsetArray) => {
    return subsetArray.every((el) => {
        return parentArray.includes(el)
    })
}

checkSubset(arr1, arr2); // returns true
checkSubset(arr1, arr3); // returns false

相关文章:

js判断两个数组相等的方法


已发布

分类

来自

标签: