Разбивка массива на два

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим, как разбить массив на два отдельных массива на основе истинности функции для каждого элемента с использованием JavaScript. Мы будем использовать метод Array.prototype.reduce(), чтобы создать два массива, и метод Array.prototype.push(), чтобы добавить элементы в соответствующий массив в зависимости от истинности функции. В конце этого практического занятия вы глубоко поняли, как разбить массив в JavaScript, и сможете применить эти знания в своих будущих проектах.

Как разбить массив на два на основе функции

Чтобы разбить массив на два на основе заданной функции, следуйте этим шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Используйте Array.prototype.reduce(), чтобы создать массив из двух массивов.
  3. Используйте Array.prototype.push(), чтобы добавить элементы, для которых fn возвращает true, в первый массив, и элементы, для которых fn возвращает false, во второй.

Вот код, который вы можете использовать:

const partition = (arr, fn) =>
  arr.reduce(
    (acc, val, i, arr) => {
      acc[fn(val, i, arr) ? 0 : 1].push(val);
      return acc;
    },
    [[], []]
  );

Чтобы протестировать этот код, вы можете использовать следующий пример:

const users = [
  { user: "barney", age: 36, active: false },
  { user: "fred", age: 40, active: true }
];
partition(users, (o) => o.active);
// [
//   [{ user: 'fred', age: 40, active: true }],
//   [{ user: 'barney', age: 36, active: false }]
// ]

Это вернет массив из двух массивов, где первый массив содержит все элементы, для которых заданная функция возвращает true, а второй массив содержит все элементы, для которых заданная функция возвращает false.

Резюме

Поздравляем! Вы завершили практическое занятие "Разбивка массива на два". Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.