- 数组打平
es2019方法
arr.flat(Infinity)
2.借助helper函数
let flatten = (arr) => {
let result=[]
let loop = (arr) => {
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
loop(arr[i]);
}else{
result.push(arr[i]);
}
}
}
loop(arr);
return result;
}
3.不用helper函数
let flatten(arr) => {
let res = [];
let n = arr.length;
for (let i = 0; i < n; i++) {
if (Array.isArray(arr[i])) {
res = res.concat(flatten(arr[i]));
}
else {
res.push(arr[i]);
}
}
return res;
}
4.使用some
let flatten = (arr) => {
//concat方法每次会拉平一层
let res = [].concat(...arr);
return res.some(Array.isArray) ? flatten(res) : res;
}
5.使用reduce
let flatten = (arr) =>{
return arr.reduce(
(pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur)
,[])
}
6.使用toString
arr.toString().split(',');
删除数组中指定元素
let remove = (arr, item) => {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
arr.splice(i, 1);
i–;
}
}
return arr;
}Promise分批执行