扁平化
- reduce 函数
迭代
function flatDeep(arr) {
return arr.reduce((pre, next) => {
return pre.concat(Array.isArray(next) ? flatDeep(next) : next)
},[])
}
- 扁平化一层的
时候:
arr.reduce((pre, item) => {
return pre.concat(item)
}, [])
- 最新的flat方法
经测试,52版本的谷歌浏览器不支持,可以传扁平化的层数,不传默认展开一层,传Infinity会展开所有层级。
arr.flat(Infinity)
数组对象展开为对象
继续使用reduce方法,即可把数组对象展开为对象
arr.reduce((prev,next,index)=>{
prev[next.prop]=''
},{})
prev是最终的对象,{}是初始值,可以从数组对象里取值,赋值给prev,具体需要说明字段,直接赋值即可。