需求:后端返回的数据是二维的,类似[[],[],[]];数据需要展示用到的是单数组[,,,,]这种,那么就需要对数据进行处理
方法一:
flat()方法,方法可以将嵌套的数组展平为一维数组。默认情况下,它会展平到一层。如果二维数组的深度更深,也可以传递参数来控制展平的深度
//如果你的数组更深,可以传递参数来展平更多层级; 例如,flat(2) 会展平到深度为2的层级
const array2D = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const array1D = array2D.flat();console.log(array1D); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
方法二:
reduce()方法结合concat()方法 来将二维数组展平为一维数组。
const array2D = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const array1D = array2D.reduce((acc, curr) => acc.concat(curr), []);console.log(array1D); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
以上两种是较为方便快捷的形式,也可以使用for循环转单数组
const array2D = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const array1D = [];for (const innerArray of array2D) {for (const item of innerArray) {array1D.push(item);}
}