数组方法

数组方法

注:都不会对空数组进行操作,使用前要判空。

1.map

  • 映射 ,对数组元素一个一个进行处理,返回一个新数组
  • 不会改变原始数组
  • 回调函数参数:
    • currentValue,index,arr
    • 当前元素的值(必),当前元素的索引值,当前元素属于的数组对象
let arr = [12, 5, 8]
let result = arr.map(function (item) {
    return item*2
})
console.log(result)//[24, 10, 16]

let result2 = arr.map(item=>item*2) // 简写
console.log(result2)//[24, 10, 16]

2.redece

  • 累加,最终计算为一个值。
  • 回调元素参数:
    • total,currentValue,index,arr
    • 初始值(或者计算结束后的返回值,必),当前元素的值(必),当前元素的索引值,当前元素属于的数组对象
var arr = [1, 3, 5, 7]
var result = arr.reduce(function (tmp, item, index) {
    //tmp 上次结果,item当前数,index次数1开始
    console.log(tmp, item, index)
      //1 3 1
      //4 5 2
      //9 7 3
    return tmp + item
})
console.log(result) //16

// 求平均值
var arr = [1, 3, 5, 7]
var result = arr.reduce(function (tmp, item, index) {
    if (index != arr.length - 1) { // 不是最后一次
        return tmp + item
    } else {
        return (tmp + item)/arr.length
    }
})
console.log(result)  //4   

3.filter

  • 过滤器,保留为true的,返回一个新数组
  • 不会改变原始数组
  • 回调函数参数:
    • currentValue,index,arr
    • 当前元素的值(必),当前元素的索引值,当前元素属于的数组对象
let arr = [12, 4, 8, 9]
let result = arr.filter(function (item) {
    return item % 3 === 0
})
console.log(result)//[12,9]
let result = arr.filter(item => item % 3 === 0)//简写
console.log(result)//[12,9]

4.every

  • 检测数组所有元素是否都符合指定条件,返回布尔值。
  • 都满足条件为true,有一个不满足为false----> 一假即假
  • 回调函数参数:
    • currentValue,index,arr
    • 当前元素的值(必),当前元素的索引值,当前元素属于的数组对象
let arr = [12, 4, 8, 9]
let result = arr.every(item => item % 3 === 0)//简写
console.log(result)//false

5.some

  • 检测数组所有元素是否都符合指定条件,返回布尔值。
  • 只要有一个满足条件就为true------> 一真即真
  • 回调函数参数:
    • currentValue,index,arr
    • 当前元素的值(必),当前元素的索引值,当前元素属于的数组对象
let arr = [12, 4, 8, 9]
let result = arr.some(item => item % 3 === 0)//简写
console.log(result)//true

6.forEach

  • 循环,对元素进行一些操作
  • 回调函数参数:
    • currentValue,index,arr
    • 当前元素的值(必),当前元素的索引值,当前元素属于的数组对象
let arr = [12, 4, 8, 9]
let result = arr.forEach(item => console.log(item))
//12
//4
//8
//9

数组方法

上一篇:JavaScript面试题


下一篇:linux脚本启动jar