ES6数组迭代方法

161 阅读2分钟

1、forEach()

作用:遍历数组,相当于for循环另一种写法。forEach中不可以使用return。

let arr = [1, 2, 3, 4, 5]

arr.forEach((item, index) => {

//item=数组每项元素,index=元素下标

    console.log(item,index)
})

2、filter()

作用:过滤原数组,返回满足条件的新数组。

//需求:求数组中所有的偶数

let arr = [1, 2, 3, 4, 5]

let arr1 = arr.filter(item => {
      if(item % 2 == 0) {
          return true
      } else {
          return false
      }
})
console.log(arr1)  //2, 4

3、every()  逻辑与&& 一假则假

作用:判断数组中所有元素 是否都满足条件

// 判断数组中的元素 是否都是偶数

const arr = [10, 20, 30, 40, 50]

let sum = arr.every(item => {
    if(item % 2 == 1){
        return true 
    } else {
        return false
    }
})
console.log(sum) 

// true: 所有元素都满足条件 
// false: 有元素不满足条件且剩余的元素不会再进行检测

4、some() 逻辑或|| 一真则真

作用:判断数组中 是否有满足条件的元素

// 判断数组中 是否有奇数

const arr = [10, 20, 30, 40, 50]

let sum = arr.some(item => {
    if(item % 2 == 1){
        return true 
    } else {
        return false
    }
})
console.log(sum) 

// true: 有一个元素满足条件,就返回true,且剩余的元素不会再进行检测
// false: 所有元素都不满足条件

5、findIndex()

作用:查找数组中满足条件的第一个元素的下标

// 如果数组中是 值类型 用:arr.indexOf(元素)
// 如果数组中是 引用类型 用:arr.findIndex()

let arr = [
    { name: '小麦', age: 3 }
    { name: '小明', age: 4 }
    { name: '小米', age: 2 }
]

let sum = arr.findIndex(item => {
    return item.name == '小米'
})
console.log(sum)  //2

//如果没找到目标元素,则返回固定值-1

6、reduce()

作用:循环数组中的每一项进行累计操作

//需求:数组求和
const arr = [1, 2, 3, 4, 5]
let res = arr.reduce((sum, item, index) => {
    console.log(sum, item, index)
    return sum + item
}, 0)

7、map()

作用:将原始数组中的所有元素,根据条件返回一个全新的数组。

// 数组所有元素*0.8

let arr = [1, 2, 3, 4, 5]

let sum = arr.map((item, index) => {
    return item * 0.8
})
console.log(sum)  //[0.8, 1.6, 2.4, 3.2, 4]