JS——如何快速判断数组包含另⼀个数组
可⽤⽅法:
1. find(返回第⼀个符合条件的数组元素,没到则返回undefined)
上述是可以返回所包含的元素组成的数组,即两个数组的交际,如果只需要判断是否包含,可直接判断temp的length返回布尔值。
2. findIndex (跟find类似,返回值不⼀样,findIndex到则返回元素下标,否则返回-1)
上述结果如果包含则返回的是布尔值,也可返回包含的具体元素,即交集,也可返回包含元素的下标。
3. includes (⽅法返回⼀个布尔值,表⽰某个数组是否包含给定的值,与字符串的includes⽅法类似)
上述结果如果包含则返回的是布尔值,也可返回包含的具体元素,即交集。
ES5可⽤⽅法:
1. indexOf (判断⼀个元素是否存在于数组中,若不存在返回-1,若存在就返回它第⼀次出现的位置)
// 1、find()function  getInclude1(arr1, arr2) {
let  temp = []
for  (const  item of  arr2) {
arr1.find (i => i === item ) ? temp .push (item ) : ''
}
return  temp
}
console .log ('find1', getInclude1([3,2,5,8,4,7,6,9], [1,0,0])) // []
console .log ('find2', getInclude1([3,2,5,8,4,7,6,9], [9,6,7])) // [9, 6, 7]// 2
、findIndex()function  getInclude2(arr1, arr2) {
let  temp = []
for  (const  item of  arr2) {
arr1.findIndex (i => i === item ) !== -1 ? temp .push (item ) : ''
}
return  temp .length ? true  : false
}
console .log ('findIndex1', getInclude2([3,2,5,8,4,7,6,9], [1,0,0])) // false
console .log ('findIndex2', getInclude2([3,2,5,8,4,7,6,9], [9,0,
0])) // true
/
/ 3、includes
function  getInclude3(arr1, arr2) {
let  temp = []
for  (const  item of  arr2) {
arr1.includes (item ) ? temp .push (item ) : ''
}
return  temp .length ? true  : false
}
console .log ('includes1', getInclude3([3,2,5,8,4,7,6,9], [1,0,0])) // false
console .log ('includes2', getInclude3([3,2,5,8,4,7,6,9], [9,0,0])) // true
上述⽅法也可将包含的元素下标返回
2. filter(过滤元素,返回⼀个新数组,新的数组由每次函数返回值为true对应的元素组成,原数组不受影响)
同理也可以将filter和indexOf相结合使⽤
总结:
也可使⽤map、some、every、forEach来操作返回符合要求的结果,甚⾄可以两层for循环也可实现,若是要求全包含(arr1=
[3,5,8,4,7,6,9]; arr2=[8,6,9])像这种的就需要知道两个数组的长度了,具体场景具体解决。补充⼀点:forEach允许改变原数据。
// 1、indexOf()function  getInclude4(arr1, arr2) {
let  temp = []
for  (const  item of  arr2) {
arr1.indexOf (item ) !== -1 ? temp .push (item ) : ''
}
return  temp .length ? true  : false
}
console .log ('indexOf', getInclude4([3,2,5,8,4,7,6,9], [1,0,0])) // false
console .log ('indexOf', getInclude4([
3,2,5,8,4,7,6,9], [9,0,0])) // true
// 2、filter()
function  getInclude5(arr1, arr2) {
js合并两个数组return  arr1.filter ((item ) => {
return  arr2.includes (item )
})
}
console .log ('filter', getInclude5([3,2,5,8,4,7,6,9], [1,0,0])) // []
console .log ('filter', getInclude5([3,2,5,8,4,7,6,9], [9,0,0])) // [9]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。