манипулирование типом данных массива - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть массив массивов объектов.так что это выглядит примерно так: [[{}{}],[{}{}{}],[{}{}], [{}{}{}{}]] ... и т.д. Мне нужно перебрать каждый объект в этом массиве.Проблема в том, что потребуется nested for loop, что неплохо, но мне было интересно, есть ли способ использовать оператор распространения, когда я помещаю его в исходный массив.outerArray.push(...innerArray), что-то вроде этого.Это не сработало, но есть что-то похожее?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Просто добавьте еще одну опцию, которая не требует передачи глубины:

const deepFlatten = arr =>
  [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)))

вызов с deepFlatten(outerArray)

0 голосов
/ 18 декабря 2018

Вы можете использовать Array.prototype.flat для преобразования вложенного массива в плоский массив

var arr1 = [1, 2, [3, 4]];
arr1.flat(); 
// [1, 2, 3, 4]

var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flat();
// [1, 2, 3, 4, [5, 6]]

var arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flat(2);
// [1, 2, 3, 4, 5, 6]

Для более старых браузеров вы можете обратиться к другим ответам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...