如何使用数组方法从二维数组中提取所有对象?
二维数组提取所有对象的数组方法
以下几种原生数组方法都能快速把你的二维数组转换成包含所有对象的一维数组:
1. 使用 flat() 方法
flat() 方法可以直接将嵌套数组拉平,默认只拉平一层,刚好适配你的二维数组场景:
const array1 = [ [{ id:1, name:"test1" }, { id:2, name:"test2" }, { id:3, name:"test3" }], [{ id:4, name:"test4" }, { id:5, name:"test5" }, { id:6, name:"test6" }], [{ id:7, name:"test7" }, { id:8, name:"test8" }, { id:9, name:"test9" }] ]; const flattenedArray = array1.flat(); // 输出结果:[{id:1,...}, {id:2,...}, ..., {id:9,...}]
2. 使用 flatMap() 方法
flatMap() 等价于先执行 map() 再对结果执行 flat(1),这里直接返回每个子数组即可完成扁平化:
const flattenedArray = array1.flatMap(subArray => subArray); // 效果和flat()完全一致
3. 使用 concat() + 展开运算符
利用 concat() 合并数组的特性,结合展开运算符将二维数组的子数组拆分为独立参数传入:
const flattenedArray = [].concat(...array1); // 同样能得到所有对象组成的一维数组
这三种方法都是原生JS提供的数组方法,无需额外依赖,任选其一就能满足你的需求。
内容的提问来源于stack exchange,提问作者Lokesh Sharma
相关产品推荐
相关产品推荐

