数组操作

    科技2024-06-08  79

    这里写目录标题

    扁平化Array.prototype.flat正则表达式reduce 去重Setfilterreduce 类数组转换为数组Array.from扩展运算符concatslice

    扁平化

    Array.prototype.flat

    参数传入Infinity。 const flattern = arr => arr.flat(Infinity)

    正则表达式

    消除数组中的左右括号,简单粗暴。 const flattern = arr => JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g, '') + ']')

    reduce

    const flattern = arr => { return arr.reduce((prev, cur) => { return prev.concat(Array.isArray(cur) ? flattern(cur) : cur) }, []) }

     

    去重

    Set

    const unique = arr => [...new Set(arr)]

    filter

    筛选首次出现的元素。 const unique = arr => { return arr.filter((item, index) => { return arr.indexOf(item) === index }) }

    reduce

    const unique = arr => { return arr.reduce((prev, cur) => { return prev.includes(cur) ? prev : prev.concat(cur) }, []) }

     

    类数组转换为数组

    类数组:有length属性,但没有Array.prototype上的方法。

    Array.from

    const arrayLikeToArray = arrayLike => Array.from(arrayLike)

    扩展运算符

    const arrayLikeToArray = arrayLike => [...arrayLike]

    concat

    拼接空数组 const arrayLikeToArray = arrayLike => Array.prototype.concat.apply([], arrayLike)

    slice

    const arrayLikeToArray = arrayLike => Array.prototype.slice.call(arrayLike)
    Processed: 0.014, SQL: 8