1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| const arrNum = [1, [2, 3], [4, [5, 6, 7]]]
function flattenLoop(arr, level = 1) { let result = [] for (var i = 0; i < arr.length; i++) { if (Array.isArray(arr[i]) && level > 0) { result = result.concat(flattenLoop(arr[i], level - 1)) } else { result.push(arr[i]) } } return result } console.log(flattenLoop(arrNum, 2))
let arr = [1, [2, [3, 4]]]; function flatten(arr, level) { return arr.reduce(function(prev, next){ return prev.concat(Array.isArray(next) && level > 0 ? flatten(next, level - 1) : next) }, []) } console.log(flatten(arr, 3));
|