关于javascript:ES6-笔记

52次阅读

共计 1653 个字符,预计需要花费 5 分钟才能阅读完成。

【ES6 入门】

reduce

回调函数参数四个:pre: 初始值(之后为上一操作的后果);cur: 以后元素之;index: 以后索引;arr: 数组自身

次要有以下几种用法:

    // reduce 数组去重, 也可应用 Set 实现
    // 1)reduce 形式
    let arr = [1, 2, 1, 2, 3, 5, 4, 5, 3, 4, 4, 4, 4]
    let result = arr.sort().reduce((init, current) => {if (init.length === 0 || init[init.length - 1] !== current) {init.push(current)
        }
        return init
    }, [])
    // 2)Set
    const dedupe = (array) => {return Array.from(new Set(array));
    }
    console.log(Array.from(new Set([1,2,3,4,5,2,4,1])))
    console.log(...new Set([1,2,3,4,5,2,4,1]))
    
    // 数组求和
    var total = [0, 1, 2, 3].reduce((acc, cur) => {return acc + cur}, 0)
    
    // 二维数组转为一维数组
    [[1, 2], [3, 4], [5, 6]].reduce((acc, cur) => [...acc, ...cur], []) // [1, 2, 3, 4, 5, 6]
    [[1, 2], [3, 4], [5, 6]].reduce((acc, cur) => {return acc.concat(cur)
    }, []) // [0, 1, 3, 4, 5, 6]
    
    // 计算数组中每个元素呈现的次数
    const arraySum = (arr, val) => arr.reduce((acc, cur) =>         {return cur == val ? acc + 1 : acc + 0}, 0)
    let arr = [1, 2, 3, 4, 5]
    arraySum(arr, 0) // 3
    
    // 代替 filter 和 map 的组合
    const characters = [{ name: 'ironman', env: 'marvel'},
        {name: 'black_widow', env: 'marvel'},
        {name: 'wonder_woman', env: 'dc_comics'},
    ]
    
    // filter 和 map 的组合
    characters
    .filter(character => character.env === 'marvel')
    .map(character => {
        return Object.assign({},
                character,
                {alsoSeenIn: ['Avengers'] }
            )
    })
    
    // reduce 形式
    characters.reduce((acc, character) => {
        return character.env === 'marvel' ? 
            acc.concat(
                Object.assign({},
                    character,
                    {alsoSeenIn: ['Avengers'] }
                )
            ) : acc
    }, [])

forEach

回调函数参数,item(数组元素)、index(序列)、arr(数组自身)
循环数组,无返回值,不扭转原数组
不反对 return 操作输入,return 只用于管制循环是否跳出以后循环

includes

判断数组是否蕴含某个元素,不必 return,不必回调函数,返回布尔值

filter

应用 return 操作输入,会循环数组每一项,并在回调函数中操作
返回满足条件的元素组成的数组,不扭转原数组

map

输入的是 return 什么就输入什么新数组
原数组被“映射”成对应新数组,返回新数组,不扭转原数组

find

数组实例的 find 办法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员顺次执行该回调函数,直到找出第一个返回值为 true 的成员,而后返回该成员。如果没有符合条件的成员,则返回undefined

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

some

返回布尔值,遇到满足条件变跳出循环

every

返回布尔值,遇到不满足条件跳出循环

正文完
 0