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]