Я бездельничал, чтобы сгладить массив, и я закончил тем, что написал что-то вроде этого
const arr = [1,[[4,5],4,[9,8]]];
const result = [];
const flatten = arr =>
{
arr.forEach(elem =>{
if(Array.isArray(elem))
{
flatten(elem);
}
else{
result.push(elem);
}
})
return result;
}
console.log(flatten(arr))
, затем я нашел решение в Google и нашел решение, которое было больше похоже на это.
const arr = [1,[[4,5],4,[9,8]]];
const flatten = arr =>
{
let result = [];
arr.forEach(elem =>{
if(Array.isArray(elem))
{
result = result.concat(flatten(elem));
}
else{
result.push(elem);
}
})
return result;
}
console.log(flatten(arr))
Как видите, переменная result
есть в функции, но тогда функция рекурсивная, как она сохраняется? спасибо.