function myflatten(arr, deep) {
let result = [];
let temp1 = arr; // 当前用来遍历的数组
let temp2 = []; // 保存下一次用来遍历的数组
while (deep) {
// 如果元素是数组就放到temp2里面去,不是就放到result里
for (let i = 0; i < temp1.length; i++) {
if (temp1[i] instanceof Array) {
temp2.push(...temp1[i]);
} else {
result.push(temp1[i]);
}
}
deep--;
// 到达深度后要把没遍历的数组放到result里
if (deep == 0) {
result.push(...temp2);
} else {
temp1 = temp2;
temp2 = [];
}
}
return result;
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
请登录后查看评论内容