20191015
- Array Flattening
es2019 method
arr.flat(Infinity)
Using helper function
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;
}Without helper function
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;
}Using some
let flatten = (arr) => {
//concat method flattens one level each time
let res = [].concat(…arr);
return res.some(Array.isArray) ? flatten(res) : res;
}Using reduce
let flatten = (arr) =>{
return arr.reduce(
(pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur)
,[])
}Using toString
arr.toString().split(‘,’);
Remove specified element from array
let remove = (arr, item) => {
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
arr.splice(i, 1);
i–;
}
}
return arr;
}Promise Batch Execution