javascript 数组扁平化
发布时间:2022-03-18浏览次数:0
支持注册ChatGPT Plus的OneKey虚拟卡
绑定Apple Pay、Google Pay、支付宝和微信支付进行日常消费
注册和了解更多 ->
silver
数组的原生方法
arr.flat(Inifity); // Inifity 可以扁平化任意嵌套层数的数组
递归
function flat(arr) {
let flattenArr = [];
arr.forEach(item => {
if (Array.isArray(item)) {
flattenArr = flattenArr.concat(flat(item))
} else {
flattenArr.push(item);
}
})
return flattenArr;
}
非递归
function flat(arr) {
const flattenArr = [];
for(let i = 0;i<arr.length;i++) {
const stack = [];
if (Array.isArray(arr[i])) {
stack.push(arr[i]);
} else {
flattenArr.push(arr[i]);
}
while(stack.length) {
const newArr = stack.pop();
for(let i = 0;i<newArr.length;i++) {
if (Array.isArray(newArr[i])) {
stack.push(newArr[i]);
} else {
flattenArr.push(newArr[i]);
}
}
}
}
return flattenArr;
}
扫描二维码查看更多内容