const arr = [[1, 2], [3, 4], [6, 7, [11, 12, [12, 13, [14]]]], 10];
Array.prototype.flatNew = function (num) {
let result = [...this];
while (num > 0) {
result = result.reduce((total, current) => {
if (Array.isArray(current)) {
total = total.concat(current);
} else {
total.push(current);
}
return total;
}, [])
num--;
}
return result;
}
// console.log(arr.flatNew(1)); //[1,2,3,4,6,7,[11, 12, [12, 13, [14]]]], 10];
// console.log(arr.flatNew(2)); //[1,2,3,4,6,7,11,12,[12, 13, [14]], 10];
console.log(arr.flatNew(3)); //[1,2,3,4,6,7,11,12,12,13, [14], 10];
console