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

本文介绍了JavaScript中用于数组检测的方法:some()、every()和filter()。some()检查数组中是否存在满足条件的元素,一旦找到则返回true;every()判断所有元素是否都符合指定条件,全部满足才返回true。filter()则创建一个新数组,包含符合条件的元素。这三个方法都不会改变原数组,并且对空数组不做检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()  创建新数组、不改变原数组。  

                                                                                                                                                                                                                                                                                                            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值