数组函数some()、every()、filter()用法

1、some()                                                                                                                                                用于检测数组中的元素是否满足指定条件,依次执行数组的每个元素。                                          (1)如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。                          (2)如果没有满足条件的元素,则返回false。                                                                            

const a = [1,2,3];

const result1 = a.some((item)=> {
    return item > 2;
}); 
const result2 = a.some((item)=>{
    return item > 5;
});
 
console.log(result1);  // 输出ture
console.log(result2);  // 输出false
const data1 = [{current:true},{current:false}];
const data2 = [{current:false},{current:false}];

const isCurrent1 = data1.some((item)=> v.current); 
const isCurrent2 = data2.some((item)=> v.current);
 
console.log(isCurrent1);  // 输出ture
console.log(isCurrent2);  // 输出false

       注意:1)some() 不会对空数组进行检测。                                                                                                  2)some() 不创建新数组、不改变原数组。                                                                     

2、every()                                                                                                                                               用于检测数组所有元素是否都符合指定条件,依次执行数组的每个元素。                                      (1)如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。                                                                                                                                                  (2)如果所有元素都满足条件,则返回 true。                                                                                    注意:1)every()  不会对空数组进行检测。                                                                                                 2)every() 不创建新数组、不改变原数组。

const a = [1,2,3];
 
const result1 = a.every((item)=> {
    return item > 2;
}); 
const result2 = a.every((item)=>{
    return item < 4;
});
 
console.log(result1);  // 输出false 
console.log(result2);  // 输出true

3、filter()                                                                                                                                                 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。                    

const res = [{current:true},{current:false}];      // 创建一个数组       

const isCurrent = res.filter((item)=> v.current);  // 符合条件(current为true)的数据放入新数组

if (isCurrent.length > 0) {
  return true;
} else {
 return false;
}

注意:1)filter()  不会对空数组进行检测。                                                                                                    2)filter()  创建新数组、不改变原数组。  

                                                                                                                                                                                                                                                                                                            


版权声明:本文为weixin_47763287原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。