logo头像

求知若渴,虚心若愚

JavaScript - 数组( Array ) - 数组方法(四)

filter()

  • 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
  • 返回true的项组成的数组
    • filter() 不会对空数组进行检测。
    • filter() 不会改变原始数组。
1
2
3
4
5
6
7
let arr = [11,22,33,44,55]
let arr1 = arr.filter( (i, v) => {
if(i < 33) {
return true
}
})
console.log(arr1) // [11, 22]

TIP
filter常用来过滤符合条件的数据,过滤数组

some()

  • 数组中的每一项给定特定的函数,如果任一项返回true,则返回true
  • 数组中任意一个元素满足条件,返回值就是true
1
2
3
4
5
function compare(element, index, array) {
return element > 44;
}
[11, 22, 33, 44, 55].some(compare); //true 有一个满足条件的,返回true
[11, 22, 33, 44].some(compare); // false 没有满足条件的,返回false

TIP
some常用来检测数组是否包含符合条件的元素

every()

  • 对数组的每一项都运行给定的函数,每一项都返回 ture,则返回 true
  • 如果有一项返回false,那么就返回false,并且结束循环
1
2
3
4
5
var arr = [11, 22, 33, 44];
var boolValue = arr.every(function (t) {
return t + 1 > 10;
});
console.log(boolValue); //true 每一项加1,都大于10

TIP
every常用来检测数组中所有的元素是否合法

reduce()

  • 返回数累加的值 累加器
  • 迭代数组的所有项,累加器,数组中的每个值(从左到右)合并,最终计算为一个值
  • arr.reduce(callback, initialValue)
  • callback:
    • previousValue 必选 –上一次调用回调返回的值,或者是提供的初始值(initialValue)
    • currentValue 必选 –数组中当前被处理的数组项
    • index 可选 –当前数组项在数组中的索引值
    • array 可选 –原数组
  • initialValue: 可选 –初始值
1
2
3
4
5
let arr = [11,22,33,44]
let arr1 = arr.reduce((preValue, curValue) =>
preValue + curValue
)
console.log(arr1) // 110

TIP
reduce常用来累加数据

reduceRight()

  • 和arr.reduce()功能一样
  • reduceRight()从数组的末尾向前将数组中的数组项做累加
1
2
3
4
5
let arr = [11,22,33,44]
let arr1 = arr.reduceRight((preValue, curValue) =>
preValue + curValue
)
console.log(arr1) // 110

TIP
reduce的定制版

支付宝打赏 微信打赏

赞赏是对我们的肯定!