Введение
В этом практическом занятии мы изучим, как разбить массив на два отдельных массива на основе истинности функции для каждого элемента с использованием JavaScript. Мы будем использовать метод Array.prototype.reduce(), чтобы создать два массива, и метод Array.prototype.push(), чтобы добавить элементы в соответствующий массив в зависимости от истинности функции. В конце этого практического занятия вы глубоко поняли, как разбить массив в JavaScript, и сможете применить эти знания в своих будущих проектах.
Как разбить массив на два на основе функции
Чтобы разбить массив на два на основе заданной функции, следуйте этим шагам:
- Откройте Терминал/SSH и введите
node, чтобы начать практиковаться в написании кода. - Используйте
Array.prototype.reduce(), чтобы создать массив из двух массивов. - Используйте
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, чтобы улучшить свои навыки.