ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript でオブジェクトのマップ関数を作成するにはどうすればよいですか?

JavaScript でオブジェクトのマップ関数を作成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 07:46:13572ブラウズ

How Can I Create a Map Function for Objects in JavaScript?

JavaScript でのオブジェクトのマップ関数の作成 (Array.map の代替)

JavaScript では、Array.prototype.map()このメソッドは、配列を反復処理し、指定された関数を各要素に適用するために広く使用されています。ただし、オブジェクトに対して同様のネイティブ メソッドは存在しません。この記事では、オブジェクトのカスタム マップ関数を導入することで、この制限に対する解決策を検討します。

問題:

キーと値のペアを持つオブジェクトを考えてみましょう:

myObject = {
  'a': 1,
  'b': 2,
  'c': 3
};

目標は、各値が指定された関数によって変換される新しいオブジェクトを作成することです。たとえば、値を 2 倍にしてみましょう:

newObject = myObject.map(function(value, label) {
  return value * 2;
});

// newObject should now be { 'a': 2, 'b': 4, 'c': 6 }

解決策:

JavaScript にはオブジェクトのネイティブ マップ関数がありませんが、オブジェクトを使用する洗練された解決策があります。 key() および forEach() メソッド:

var myObject = {
  'a': 1,
  'b': 2,
  'c': 3
};

Object.keys(myObject).forEach(function(key, index) {
  myObject[key] *= 2;
});

console.log(myObject);
// Output: { 'a': 2, 'b': 4, 'c': 6 }

この中でコード:

  • Object.keys(myObject) は、オブジェクトのプロパティ名の配列を返します。
  • forEach() メソッドは、この配列を反復処理します。
  • For eachプロパティにアクセスするには、myObject[key] を使用してその値にアクセスし、変換 (2 の乗算) を直接適用します。 object.

このアプローチでは、元のオブジェクトがその場で変更されますが、特定のシナリオでは望ましくない可能性があります。変換された値を使用して新しいオブジェクトを作成するには、変換を適用する前に元のオブジェクトのクローンを作成するだけです。

以上がJavaScript でオブジェクトのマップ関数を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。