値に基づいた配列の分割

Beginner

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

はじめに

この実験では、JavaScript を使って与えられた値に基づいて配列を分割する方法を探ります。この実験では、与えられたフィルタに基づいて、Array.prototype.reduce() メソッドと Array.prototype.push() メソッドを使って要素を 2 つのグループに追加する方法を示します。この実験が終了するまでに、JavaScript における配列の操作方法をより深く理解するようになります。

配列を 2 つのグループに分割する関数

この関数を使って値に基づいて配列を 2 つのグループに分割するには、次の手順に従います。

  1. ターミナル/SSH を開き、コーディングの練習を始めるために node と入力します。
  2. 与えられた filter 配列の結果に基づいて値を 2 つのグループに分割する bifurcate() 関数を使います。
  3. 関数を実装するには、filter 配列に基づいてグループに要素を追加するために Array.prototype.reduce()Array.prototype.push() を使います。
  4. filter がどの要素に対しても真値を持つ場合は、それを最初のグループに追加します。それ以外の場合は、2 番目のグループに追加します。

以下は bifurcate() 関数のコードです。

const bifurcate = (arr, filter) =>
  arr.reduce(
    (acc, val, i) => (acc[filter[i] ? 0 : 1].push(val), acc),
    [[], []]
  );

値の配列と対応するフィルタ配列を使って bifurcate() 関数を呼び出すことで、値を 2 つのグループに分割できます。たとえば:

bifurcate(["beep", "boop", "foo", "bar"], [true, true, false, true]);
// [ ['beep', 'boop', 'bar'], ['foo'] ]

まとめ

おめでとうございます!値に基づいた配列の分割の実験を完了しました。スキルを向上させるために、LabEx でさらに多くの実験を行って練習できます。