1.使用Array.prototype.flat()方法
flat(n) n=>扁平化的层级
/**
* @description: 数组扁平化
* @param {Array} arr 传入数组
* @return {Array} reslute 返回结果
*/
function flatten(arr) {
return arr.flat(Infinity);
}
let arr = [1, 2, [3, 4, 5, [6, 7, 8, [9, 10, 11]]]];
console.log(flatten(arr));
2.使用递归:
/**
* @description: 数组扁平化
* @param {Array} arr 传入数组
* @return {Array} reslute 返回结果
*/
function flatten(arr) {
return arr.reduce((oldVal, nowVal) => {
return oldVal.concat(Array.isArray(nowVal) ? flatten(nowVal) : nowVal);
}, []);
}
let arr = [1, 2, [3, 4, 5, [6, 7, 8, [9, 10, 11]]]];
console.log(flatten(arr));
3.使用:toString(),split(),map()
/**
* @description: 数组扁平化
* @param {Array} arr 传入数组
* @return {Array} reslute 返回结果
*/
function flatten(arr) {
return arr
.toString()
.split(",")
.map((item) => Number(item));
}
let arr = [1, 2, [3, 4, 5, [6, 7, 8, [9, 10, 11]]]];
console.log(flatten(arr));