Введение
В этом практическом занятии мы изучим, как разбить массив на две части на основе заданной функции фильтрации на JavaScript. Мы будем использовать метод Array.prototype.reduce() и метод Array.prototype.push(), чтобы разделить значения массива на две группы в зависимости от того, возвращает ли функция фильтрации истинное значение или нет. Это практическое занятие предназначено для углубления вашего понимания высших порядковых функций и манипуляций с массивами на JavaScript.
Функция для разделения массива на две группы
Чтобы разделить массив на две группы в зависимости от результата заданной функции, следуйте этим шагам:
- Откройте Терминал/SSH и введите
node, чтобы начать практиковаться в написании кода. - Используйте методы
Array.prototype.reduce()иArray.prototype.push(), чтобы добавлять элементы в группы. Это происходит в зависимости от значения, возвращаемого заданной функциейfnдля каждого элемента. - Если
fnвозвращает истинное значение для любого элемента, добавьте его в первую группу. В противном случае добавьте его во вторую группу.
Вот код:
const bifurcateBy = (arr, fn) =>
arr.reduce(
(acc, val, i) => (acc[fn(val, i) ? 0 : 1].push(val), acc),
[[], []]
);
Например, если вы вызовете bifurcateBy(['beep', 'boop', 'foo', 'bar'], x => x[0] === 'b'), функция вернет [ ['beep', 'boop', 'bar'], ['foo'] ].
Резюме
Поздравляем! Вы завершили практическое занятие по разделению массива на основе функции. Вы можете выполнить больше практических заданий в LabEx, чтобы улучшить свои навыки.