はじめに
この実験では、JavaScript を使って、与えられた関数の各要素に対する真偽値に基づいて配列を 2 つの別々の配列に分割する方法を探ります。Array.prototype.reduce() メソッドを使って 2 つの配列を作成し、Array.prototype.push() メソッドを使って、与えられた関数の真偽値に基づいて適切な配列に要素を追加します。この実験が終わるとき、JavaScript で配列を分割する方法を十分に理解し、この知識を将来のプロジェクトで活用できるようになります。
関数に基づいて配列を 2 つに分割する方法
与えられた関数に基づいて配列を 2 つに分割するには、次の手順に従います。
- ターミナル/SSH を開き、コーディングを練習するために
nodeと入力します。 Array.prototype.reduce()を使って 2 つの配列の配列を作成します。Array.prototype.push()を使って、fnがtrueを返す要素を最初の配列に追加し、fnがfalseを返す要素を 2 番目の配列に追加します。
使用できるコードは次のとおりです。
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 }]
// ]
これにより、2 つの配列の配列が返されます。最初の配列には、与えられた関数が true を返すすべての要素が含まれ、2 番目の配列には、与えられた関数が false を返すすべての要素が含まれます。
まとめ
おめでとうございます!2 つに配列を分割する実験を完了しました。スキルを向上させるために、LabEx でさらに実験を練習できます。