@historydev
Редактирую файлы с непонятными расширениями

Как разделить массив на 2 части по принципу «первый, второй»?

Добрый день. Скажите пожалуйста как разделить массив таким образом, чтобы каждый элемент пушался в свой массив, то есть допустим 1,2,4,6,12,20, на выходе [1,4,12], [2,6,20]

[
1,2,
4,6
12,20
]


Спасибо.
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
array.reduce((accumulator, value, index) => {
	if (!(accumulator[index % 2] instanceof Array)) {
		accumulator[index % 2] = [];
	}

	accumulator[index % 2].push(value);

	return accumulator;
}, []);

array.reduce((accumulator, value, index) => {
	accumulator[index % 2].push(value);

	return accumulator;
}, [[], []]);

array.reduce((accumulator, value, index) => (accumulator[index % 2].push(value), accumulator), [[], []]);

array.reduce((a, v, i) => (a[i % 2].push(v), a), [[], []]);


UPD - Более универсальный метод:
const countOff = (array, count) => array.reduce((accumulator, value, index) => {
	accumulator[index % count].push(value);

	return accumulator;
}, Array.from({ length: count }, () => []));

countOff([1, 2, 3, 4, 5, 6], 2); // [[1, 3, 5], [2, 4, 6]]
countOff([1, 2, 3, 4, 5, 6], 3); // [[1, 4], [2, 5], [3, 6]]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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