はじめに
この実験では、JavaScript を使って配列を指定された深さまでフラット化する概念を探ります。要素や配列をマージするために再帰、reduce、concat メソッドをどのように使うか学びます。この実験が終わるとき、あなたは JavaScript で配列を効率的にフラット化し、ネストされたデータ構造を操作できるようになります。
JavaScript で配列をフラット化する方法
JavaScript で配列を指定された深さまでフラット化するには、次の手順に従います。
- ターミナル/SSH を開き、コーディングを練習するために
nodeと入力します。 flatten関数に 2 つの引数を使用します。arr(フラット化する配列)とdepth(フラット化するネストレベルの最大数)。flatten関数の中で、再帰を使って深さの各レベルでdepthを 1 減らします。Array.prototype.reduce()とArray.prototype.concat()を使って要素や配列をマージします。depthが 1 に等しい場合のベースケースを追加して再帰を停止します。- 2 番目の引数
depthを省略すると、深さ 1 までのみフラット化されます(単一のフラット化)。
以下が flatten 関数のコードです。
const flatten = (arr, depth = 1) =>
arr.reduce(
(a, v) =>
a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v),
[]
);
次の例で flatten 関数をテストできます。
flatten([1, [2], 3, 4]); // [1, 2, 3, 4]
flatten([1, [2, [3, [4, 5], 6], 7], 8], 2); // [1, 2, 3, [4, 5], 6, 7, 8]
まとめ
おめでとうございます!あなたは配列をフラット化する実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を練習できます。