Как разбить массив на несколько массивов js

Аватар пользователя Aleksey
Aleksey
05 апреля 2023

Можно использовать метод reduce() для разделения исходного массива на несколько массивов, основываясь на некотором условии.

Пример. Разделим массив чисел на два массива - один сочетает в себе все четные числа, а другой - все нечетные числа.

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const [evenNumbers, oddNumbers] = numbers.reduce(
  (acc, val) => {
    acc[val % 2].push(val);
    return acc;
  },
  [[], []]
);

console.log(evenNumbers); // [2, 4, 6, 8]
console.log(oddNumbers); // [1, 3, 5, 7, 9]

Здесь мы использовали reduce(), чтобы создать два массива внутри массива acc, один для четных чисел и другой для нечетных. Затем мы проходим по каждому числу в исходном массиве и добавляем его в соответствующий массив внутри acc на основе остатка от деления на 2.

Затем мы деструктурируем результат reduce() в две переменные evenNumbers и oddNumbers, чтобы получить два отдельных массива, содержащих только четные и нечетные числа соответственно.

1 0
Аватар пользователя Вячеслав Межуревский
Вячеслав Межуревский
26 сентября 2022

Для того что бы получить "срез" массива, можно воспользоваться встроенным методом slice

const nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

console.log(nums.slice(3));
// Вывод: [ 4, 5, 6, 7, 8, 9, 10 ]

console.log(nums.slice(2, 6));
// Вывод: [ 3, 4, 5, 6 ]

console.log(nums.slice(-2));
// Вывод: [ 9, 10 ]

console.log(nums.slice());
// Вывод: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Для того чтобы "нарезать" массив на одинаковые части, можно воспользоваться методом chunk из библиотеки lodash:

_.chunk(['a', 'b', 'c', 'd'], 2);
// Вывод: [['a', 'b'], ['c', 'd']]

_.chunk(['a', 'b', 'c', 'd'], 3);
// Вывод: [['a', 'b', 'c'], ['d']]
0 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки