彻底搞懂数组过滤器之some、filter、every、find的本质区别

87 阅读1分钟
const arr = [1,2,3,4];

一、some

用于检查数组中的元素是否满足指定条件,类似于或运算,只要有一个元素满足条件,就返回true,后面的元素不会在执行,不会改变原数组,不会对空数组进行检测

let isTrue = arr.some((item) => {
    return item > 3;
})
console.log(isTrue); // true

二、every

用于检查数组中的元素是否满足指定条件,类似于且运算,所有元素满足条件,就返回 true,如果有一个元素不满足,就返回false,并且后面的元素不会在执行,不会改变原数组

let isTrue = arr.every((item) => {
    return item >= 1;
})
console.log(isTrue); // true

三、filter

返回一个符合条件的新数组,不会改变原数组,不会对空数组进行检测

let newArr = arr.filter((item) => {
    return item > 3;
})
console.log(newArr); // [4]

三、find

返回符合条件的第一个元素值,不会对空数组进行检测,不会改变原数组

let item = arr.every((item) => {
    return item > 0;
})
console.log(item); //1