1. ホーム
  2. javascript

[解決済み] JavaScriptのリテラル表記で連想配列を作成する方法

2022-03-05 13:36:24

質問

がないことは理解しています。 連想配列 のみで、JavaScriptでは オブジェクト .

しかし、私は 配列 を使用して、文字列のキーで ブラケット表記 というように。

var myArray = [];
myArray['a'] = 200;
myArray['b'] = 300;
console.log(myArray); // Prints [a: 200, b: 300]

ということで、全く同じことを ブラケット表記 :

var myNewArray = [a: 200, b: 300]; // I am getting error - Unexpected token:

これもうまくいきません。

var myNewArray = ['a': 200, 'b': 300]; // Same error. Why can I not create?

解決方法は?

JavaScriptには連想配列がなく、オブジェクトのみです。JavaScriptの配列も基本的にはオブジェクトですが、プロパティ名が数字(0,1,...)であるという特殊性があるだけです。

だから、まず自分のコードを見てください。

var myArray = []; // Creating a new array object
myArray['a'] = 200; // Setting the attribute a to 200
myArray['b'] = 300; // Setting the attribute b to 300

重要なのは myArray['a'] = 200; 同一 から myArray.a = 200; !

では、何をしたいのかから始めると。 JavaScriptの配列を作成し、そこに数値属性を一切渡さないということは、1つのステートメントではできません。

しかし、これはおそらくあなたが必要とするものではありません! おそらく必要なのはJavaScriptのオブジェクトで、基本的には他の言語での連想配列や辞書、マップと同じものです。これは文字列を値にマッピングするものです。そしてそれは簡単に実現できるのです。

var myObj = {a: 200, b: 300};

しかし、あなたがやったこととは少し違うということを理解しておく必要があります。 myObj instanceof Array を返します。 false というのも myObj から先祖にあたるものではありません。 Array をプロトタイプチェーンに追加しました。