let status = 数组1.every(item =>{
return 数组2.indexOf(item.id) >= 0
})
如果status 返回 true ; 则=>【数组1】里面的元素在【数组2】里面都有
如果status 返回 false ; 则=>【数组1】里面的元素在【数组2】不完全有,甚至一个都没有
解析:
数组的every,是表示数组中每一项都符合判断条件,会返回true ; 只要有一个不符合的,就会返回false;
案例的意思就是:【数组1】里面所有的元素都满足 【数组2.indexOf(item.id) >= 0】的条件;而【数组2.indexOf(item.id) >= 0】的条件表示 【item.id】在【数组2】中都能找到对应的index值(下标索引值);既然【数组1】中所有【元素】在【数组2】中都能找到【下标索引值】,证明:
【数组1】中所有元素,在【数组2】中都能找到 =>【数组2】包含【数组1】
原理等同于:
for(let n=0;n<数组1.length ; n++){
if( 数组2.indexOf(数组1[n]) ===-1 ){
return false
}
}
遍历【数组1】,一旦【数组1】的数据(元素)在【数组2】中找不到,就返回false;
=> 【数组2】不完全包含【数组1】