Array 扩展

  • Array.from(arrayLike, [function])

    将类数组转换为真正的数组,它接收一个伪数组。

    let nodeList = document.querySelectorAll('div')
    console.log(Array.from(nodeList))
    

    当然,我们也可以传递一个函数对数组进行处理。

    let arrayLike = {
    "0":1,
    "1":2,
    "2":3,
    "length":3
    }
    let result = Array.from(arrayLike, e => e * 2)
    console.log(result)
    
  • find()

    找出第一个符合条件的数组成员,如果没有则返回 undefined。

    let arr = [1, 2, 3, 6, 7]
    let result = arr.find((e, i) => e >= 6)
    console.log(result)
    
  • findIndex()

    找出第一个符合条件的元素的下标,否则返回 -1。

    let arr1 = ['a', 'b', 'c']
    console.log(arr1.findIndex(e => e === 'b'))
    
  • includes()

    判断数组是否包含某个值,返回值为 boolean。

    let arr = [1, 2, 3, 6, 7]
    console.log(arr.includes(6))
    
  • flat()

    将数组进行降维 (二维降为一维、三维将为二维) 。

    let arr1 = [
    [1, 2, 3],
    [5, 6, 7]
    ]
    let arr2 = [
    [
        [1, 2, 3],
        [5, 6, 7]
    ]
    ]
    console.log(arr1.flat())
    console.log(arr2.flat())
    console.log(arr2.flat(1)) // 降为 1 维
    
  • flatMap()

    相当于 map()flat() 的结合。

    let result = [1, 2, 3].flatMap(e => [e ** 2])
    console.log(result)