2017-11-21 20 views
4

オブジェクトリテラルをハッシュテーブルとして使用することをお勧めしますか?つまり、特定のマップされた値を戻すためのキーとしてプロパティー名を使用します。例えばオブジェクトリテラルをハッシュテーブルとして使用することをお勧めしますか?

var colorArray = [ 
    { code: "#4286f4", name: "Blue" }, 
    { code: "#fc4d02", name: "Red" } 
] 

var hashTable = {} 

colorArray.forEach(color => { 
    hashTable[color.code] = color.name 
}) 

が、これはオブジェクトリテラルのための許容可能な使用である、またはより良いJavaScriptでハッシュマップを扱うそこにパターンがあるのでしょうか?

+1

私は、これは、スタックオーバーフローのためのコードレビューの質問の多くのない問題であることを主張するだろう。 –

+3

JSONオブジェクトなどはありません。 JSONはテキストデータ形式です。しかし、オブジェクトリテラルをハッシュマップとして使用することは一般的です。 – charlietfl

+1

オブジェクトをハッシュマップとして使用することはまったく正当なパターンですが、es6を使用することができれば、組み込みの 'Map'型も利用できることに注意してください。 – CRice

答えて

7

リテラルオブジェクトを使用するES6以前は、JSでハッシュマップを使用する唯一の方法でした。 ES6ので、あなたもMapを使用することができます。

const colorArray = [{code: "#4286f4" , name: "Blue"}, {code: "#fc4d02", name: "Red"}]; 
 

 
const map = new Map(colorArray.map(({ code, name }) => [code, name])); 
 

 
console.log(map); // look at the browser's console 
 

 
console.log(map.get("#4286f4"));

+0

ES6での彼の変更については知りませんでした。まさに私が探していたもの。ありがとう。 –

+0

@BradleyMorris - ようこそ:) –

関連する問題