在许多用例中,知道一个数组是否是另一个数组的子集可能非常有用——虽然人眼通常很明显,但在代码中很难评估。
在下面的代码中,arr2
是 的子集,arr1
但arr3
不是。
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
相关文章: