Introduction
In this lab, we will explore how to partition an array into two separate arrays based on a provided function's truthiness for each element using JavaScript. We will use the Array.prototype.reduce() method to create two arrays and the Array.prototype.push() method to add elements to the appropriate array based on the provided function's truthiness. By the end of this lab, you will have a strong understanding of how to partition an array in JavaScript and be able to apply this knowledge in your future projects.
How to Partition an Array into Two Based on a Function
To partition an array into two based on a provided function, follow these steps:
- Open the Terminal/SSH and type
nodeto start practicing coding. - Use
Array.prototype.reduce()to create an array of two arrays. - Use
Array.prototype.push()to add elements for whichfnreturnstrueto the first array and elements for whichfnreturnsfalseto the second one.
Here's the code you can use:
const partition = (arr, fn) =>
arr.reduce(
(acc, val, i, arr) => {
acc[fn(val, i, arr) ? 0 : 1].push(val);
return acc;
},
[[], []]
);
To test this code, you can use the following example:
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 }]
// ]
This will return an array of two arrays, where the first array contains all the elements for which the provided function returns true, and the second array contains all the elements for which the provided function returns false.
Summary
Congratulations! You have completed the Partition Array in Two lab. You can practice more labs in LabEx to improve your skills.