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