检查数组是否包含JavaScript中另一个数组的任何元素我有一个目标数组["apple","banana","orange"],我想检查其他数组是否包含任何一个目标数组元素。例如:["apple","grape"] //returns true;["apple","banana","pineapple"] //returns true;["grape", "pineapple"] //returns false;我怎么能在JavaScript中做到这一点?
3 回答
繁星coding
TA贡献1797条经验 获得超4个赞
香草JS
ES2016:
const found = arr1.some(r=> arr2.includes(r))
ES6:
const found = arr1.some(r=> arr2.indexOf(r) >= 0)
这个怎么运作
some(..)
根据测试函数检查数组的每个元素,如果数组的任何元素通过测试函数,则返回true,否则返回false。如果给定的参数存在于数组中indexOf(..) >= 0
,includes(..)
则返回true。
函数式编程
TA贡献1807条经验 获得超9个赞
香草js
/** * @description determine if an array contains one or more items from another array. * @param {array} haystack the array to search. * @param {array} arr the array providing items to check for in the haystack. * @return {boolean} true|false if haystack contains at least one item from arr. */var findOne = function (haystack, arr) { return arr.some(function (v) { return haystack.indexOf(v) >= 0; });};
添加回答
举报
0/150
提交
取消