已知数组const arr = [1, 2, 3, [4, 5, [5, 6], 7, 8], 9, [10, 11, [12]]];
将其展平为[1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12]
可以使用的方式:
1. const newArr = arr.toString().split(",").map(item=>Number(item));
//注意这里需要将字符串转换为数字类型的,保证不改变数据类型 const newArr = arr.toString().split(",").map(item=>Number(item)); //[1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12]
2. const newArr = arr.join(",").split(",");
//注意这里需要将字符串转换为数字类型的,保证不改变数据类型 const newArr = arr.join(",").split(","); [1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12]
3.使用API,arr.flat(depth)的返回值;其中,depth为嵌套的数组应展平至多深的深度级别。默认为1,默认为一层,这里可以写infinity代表无限层级
const newArr = arr.flat(Infinity);//使用数组的flat方法 //[1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 11, 12]