はじめに
この実験では、JavaScript の transform 関数を調べます。この関数を使うと、指定された関数をアキュムレータとオブジェクトの各キーに適用できます。Object.keys() と Array.prototype.reduce() を使うことで、オブジェクトの各キーを簡単に反復処理し、必要な変換を行うことができます。この実験では、この便利な関数を使った実践的な経験を提供し、JavaScript プログラミングにおけるその実際の応用例を示します。
オブジェクトの変換
コーディングの練習を始めるには、ターミナル/SSH を開き、node と入力します。
transform 関数は、指定された関数をアキュムレータとオブジェクトの各キーに左から右へ適用します。使い方は以下の通りです。
Object.keys()を使ってオブジェクトの各キーを反復処理します。Array.prototype.reduce()を使って指定された関数を与えられたアキュムレータに適用します。
const transform = (obj, fn, acc) =>
Object.keys(obj).reduce((a, k) => fn(a, obj[k], k, obj), acc);
以下は例です。
transform(
{ a: 1, b: 2, c: 1 },
(r, v, k) => {
(r[v] || (r[v] = [])).push(k);
return r;
},
{}
); // { '1': ['a', 'c'], '2': ['b'] }
まとめ
おめでとうございます!あなたはオブジェクトの変換の実験を完了しました。あなたの技術を向上させるために、LabEx でさらに実験を練習することができます。