ES6笔记

322 阅读2分钟

1.数组map遍历

  • map作用与场景: 映射数组 (将数组每一个元素处理之后,得到一个新数组)
  1. 循环执行次数 == 数组长度
  2. return 是新元素值;没有return 新元素都是undefined
  3. map语句会返回一个新数组
> let arr = [10,20,30,40,50]//需求每个值加一

//简写
let res = arr.map( value=>value+1 )

//完整写法
let res = arr.map( (value,index)=>{
            return value+1
        })
console.log(res) //结果res=[11,21,31,41,51]

2.数组filter遍历

  • filter作用与场景 : 筛选数组(根据条件筛选数组,将符合条件的元素放入新数组中)
  1. 循环执行次数 == 数组长度
  2. return true :满足筛选条件,当前元素放入新数组中;
    return false : 不满足筛选条件,当前元素不放入新数组中;
  3. filter语句返回筛选之后的新数组
let arr = [20, 65, 80, 95, 100]//需求:筛选出数组中的偶数

//简写
let res = arr.filter(value=>value % 2 == 0)

//完整写法
 let res = arr.filter((value, index) => {
     if(value % 2 == 0){
         return true
     }
  })
console.log( res )//结果res[20,80,100]

3.数组forEach遍历

  • forEach作用与场景 : 遍历数组 类似于for循环遍历数组
  1. 循环执行次数 == 数组长度
  2. 回调函数内部无return
  3. forEach本身无返回值
arr.forEach( (value,index) => {
            console.log(value,index)  
        })

4.数组every遍历 全真为真

  • every作用与场景 : 判断数组是否所有的元素都满足条件 ( 逻辑与&& )
  • 经典场景 : 开关思想. 购物车全选
  1. 循环执行次数 != 数组长度
  2. return true : 循环继续。当前元素满足条件,则继续判断。如果所有元素满足条件则every返回值的是true
    return false : 循环结束。当前元素不满足条件则结束循环。every的返回值就是false
let arr = [10, 20, 30, 40, 50]//需求:判断数组是否全部为正数

//简写
let res = arr.every( value => value > 0)

//完整写法
let res = arr.every((value, index) => {
     if(value > 0){
         return true
     }
  })
console.log( res )//结果true

5.数组some遍历 一真则真

  • some作用与场景 : 判断数组中是否有满足条件的元素 ( 逻辑或|| )
  • 找到满足条件的元素则返回true反之false
  1. 循环执行次数 != 数组长度
  2. return true :循环结束。找到满足条件的元素则结束循环,此时some的返回值是true
    return false :循环继续。循环所有没有找到满足条件的元素;则some的返回值是false
let arr = [10, 20, -30, 40, 50]//需求:判断数组中有没有负数

//简写
let res = arr.some(value => value < 0)

//完整写法
let res = arr.some((value, index) => {
     if(value < 0){
         return true
     }
  })
 console.log(res)//结果true

6.数组 findIndex查找元素下标

snipaste20220411_165941.png

7.new Set 数组去重复

  • new Set去重的数组得到的结果不是数组,需要重新转成数组

set去重复.png

7.非空判断 开关思想

snipaste20220420_215542.png

8.Array.from()

  • 伪数组转真数组
伪数组
  1. 具有length属性
  2. 按索引方式储存数据
  3. 不具有数组的.push .pop 等方法

9.reduce() 累加和

  • reduce((累加值(acc),item(cur))=>累加值+item,0)

10.find()找到符合条件的数据并返回

[1, 4, -5, 10].find((n) => n < 0)
// -5