Этот вопрос стал хлебом насущным для интервью с разработчиками интерфейсов. Вот как это можно сделать:
Чтобы сгладить массив в JavaScript, вы можете использовать метод Array.prototype.flat(), новый метод, представленный в JavaScript, который можно использовать для сглаживания массива до заданной глубины.
Например, рассмотрим следующий массив:
const arr = [1, [2, [3, [4]]]];
Чтобы сгладить этот массив до глубины 1, вы можете использовать метод flat() следующим образом:
const flatArr = arr.flat(1); console.log(flatArr); // [1, 2, [3, [4]]]
Чтобы сгладить массив до глубины 2, вы можете использовать метод flat() следующим образом:
const flatArr = arr.flat(2); console.log(flatArr); // [1, 2, 3, [4]]
Чтобы полностью сгладить массив, вы можете использовать метод flat() следующим образом:
const flatArr = arr.flat(Infinity); console.log(flatArr); // [1, 2, 3, 4]
Кроме того, вы можете использовать рекурсивную функцию для выравнивания массива вручную. Вот пример того, как вы могли бы это сделать:
function flattenArray(arr) { let flatArr = []; for (let i = 0; i < arr.length; i++) { if (Array.isArray(arr[i])) { flatArr = flatArr.concat(flattenArray(arr[i])); } else { flatArr.push(arr[i]); } } return flatArr; } const arr = [1, [2, [3, [4]]]]; const flatArr = flattenArray(arr); console.log(flatArr); // [1, 2, 3, 4]
Надеюсь это поможет!