Задать вопрос
lavezzi1
@lavezzi1

Как лучше всего использовать вложенные лупы?

Получаю список массив items, каждый item в свою очередь имеет свой массив. Задача в том, что нужно пробежать по items и вытащить из каждого item содержимое массива и сложить их все в один общий. То есть создать плоскую структуру. Можно пойти простым путем и сделать с помощью двух for.

Вопрос, как с новым синтаксисом es6-7 сделать это красивее?
  • Вопрос задан
  • 204 просмотра
Подписаться 1 Оценить 3 комментария
Решения вопроса 3
boratsagdiev
@boratsagdiev
Для полного flat'а вложенных массивов:

const flattenArr = (arr) => {

	const flatArray = [];
	const parseArray = (arr) => {
		arr.forEach(item => Array.isArray(item) ? parseArray(item) : flatArray.push(item))
	}
	parseArray(arr)

	return flatArray
}


jsbin.com/guyisequwa/edit?js,console
Ответ написан
Комментировать
@GreatRash
var arr = [
  ["aaa 1", "bbb 1", "ccc 1", "ddd 1"],
  ["aaa 2", "bbb 2", "ccc 2", "ddd 2"],
  ["aaa 3", "bbb 3", "ccc 3", "ddd 3"],
  ["aaa 4", "bbb 4", "ccc 4", "ddd 4"]
];

var flattenArr = [].concat.apply([], arr);

console.log(flattenArr);
Ответ написан
Комментировать
@kulaeff
Front-end developer
С es6 это просто:

var items = [
  ["a1", "b1", "c1", "d1"],
  ["a2", "b2", "c2", "d2"],
  ["a3", "b3", "c3", "d3"],
];

const flattened = items.reduce((a, b) => a.concat(b))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
https://github.com/lodash/lodash/blob/b506174410fa...

https://lodash.com/docs/4.17.4#flattenDeep

Вопрос, как с новым синтаксисом es6-7 сделать это красивее?

как обычно, ничего не меняется в программировании на таком базовом уровне.
Даже если навернуть сахарку сверху нового, под капотом будет всё тоже самое.
Так зачем делать магию, если достаточно обычного очевидного способа?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы