JavaScript を使ったオブジェクトプロパティの変換

JavaScriptJavaScriptBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、JavaScript の transform 関数を調べます。この関数を使うと、指定された関数をアキュムレータとオブジェクトの各キーに適用できます。Object.keys()Array.prototype.reduce() を使うことで、オブジェクトの各キーを簡単に反復処理し、必要な変換を行うことができます。この実験では、この便利な関数を使った実践的な経験を提供し、JavaScript プログラミングにおけるその実際の応用例を示します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/destr_assign("Destructuring Assignment") subgraph Lab Skills javascript/variables -.-> lab-28667{{"JavaScript を使ったオブジェクトプロパティの変換"}} javascript/data_types -.-> lab-28667{{"JavaScript を使ったオブジェクトプロパティの変換"}} javascript/arith_ops -.-> lab-28667{{"JavaScript を使ったオブジェクトプロパティの変換"}} javascript/comp_ops -.-> lab-28667{{"JavaScript を使ったオブジェクトプロパティの変換"}} javascript/array_methods -.-> lab-28667{{"JavaScript を使ったオブジェクトプロパティの変換"}} javascript/higher_funcs -.-> lab-28667{{"JavaScript を使ったオブジェクトプロパティの変換"}} javascript/destr_assign -.-> lab-28667{{"JavaScript を使ったオブジェクトプロパティの変換"}} end

オブジェクトの変換

コーディングの練習を始めるには、ターミナル/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でさらに実験を練習することができます。