Skip to content

es6数组使用reduce扁平化与去重

扁平化

js
function Flat(arr = []) {
    return arr.reduce((items, item) => {
        return items.concat( Array.isArray(item) ? Flat(item) : item )
    }, [])
}
const arr = [0, 1, 2, 3, 4, 5, 6];
Flat(arr)
// [0, 1, "aaa", "aaa", "aaa", 5, 6]

去重

js
function Uniq(arr = []) {
    return arr.reduce((res, item) => {
        return res.includes(item) ? res: res.concat(item) // concat不影响原数组, 返回的是合并后的数组
    }, [])
}
const arr = [2, 1, 0, 3, 2, 1, 2];
Uniq(arr); // [2, 1, 0, 3]