如何修改嵌套数组结构,将内层数组的对象提取为外层数组同级元素
实现数组降维的方案
方案1:使用flat()方法(推荐)
ES2019 提供的原生数组方法flat()可以直接完成降维操作,适配不同场景:
- 仅存在1层嵌套时,直接调用即可:
// 原数组 let array = [{name: 'John'},{age: 20},[{degree: "any"}, {college: 'any'}]] // 降维处理 array = array.flat() // 处理后输出:[{name: 'John'},{age: 20},{degree: "any"}, {college: 'any'}]
- 如果递归返回的数组可能存在多层未知嵌套,传入
Infinity参数可以打平所有层级的嵌套:
array = array.flat(Infinity)
目前主流浏览器、Node.js 11及以上版本都原生支持flat()方法,无需额外引入依赖。
方案2:低版本环境兼容方案
如果运行环境不支持ES2019,可以用展开运算符配合concat实现1层级降维:
array = [].concat(...array)
内容的提问来源于stack exchange,提问作者DeDav
相关产品推荐
相关产品推荐

