2012-05-11 5 views

答えて

82

は、オブジェクトを使用する必要がassociative array in JavaScriptのようなものを作るために。

var arr = {}; // {} will create an object 
var name = "name"; 
var val = 2; 
arr[name] = val; 
console.log(arr);​ 

DEMO:http://jsfiddle.net/bz8pK/1/

+1

についてhereより有用な情報を見つけることが連想配列

var arr = []; var name = "name"; var val = 'some value'; var val2 = 'some other value'; arr[name] = new Array(val); arr[name].push(val2) console.log(arr); 

を作成する方法です。それはオブジェクトであり、配列ではないからです。 – ProEvilz

+0

時々、私たちは複雑なソリューションに焦点を当てて、単純なものを忘れてしまいます。 arr [name] = val; 5年後に兄弟に感謝します。 forサイクルと組み合わせると、一日中変数を連続して変更することができます –

18

JavaScriptが仲間の配列を持っていません。あなたは代わりにオブジェクトを使用する必要があります。

var obj = {}; 
var name = "name"; 
var val = 2; 
obj[name] = val; 
console.log(obj);​ 

あなたは今、さまざまな方法を使用することができます値を取得するには:

console.log(obj.name);​ 
console.log(obj[name]);​ 
console.log(obj["name"]);​ 
+1

データにアクセスする複数の方法を示してくれてありがとう。 –

4

Javascriptを連想配列を持っています。 ここには動作するスニペットがあります。

<script type="text/javascript"> 
 
    var myArray = []; 
 
    myArray['thank'] = 'you'; 
 
    myArray['no'] = 'problem'; 
 
    console.log(myArray); 
 
</script>

それはECMAの新機能である場合、私は知りませんが、今日のように、それはあなたが書いたまさに同じように動作します。

+1

ありがとうございました! – Raja

+2

これは配列ではありません。非数値キーが存在すると、これはオブジェクトリテラルになります。自分自身を参照してください: 'console.log(typeof myArray);'。また、 'length'プロパティは配列の一部としてこれらの非数値キーを数えません:' console.log(myArray.length); 'は' 0'を返します。 'myArray [0] = 'see';'を追加し、再度実行すると、 '1'が返されます。 – ajmedway

0

これは、あなたがあなたがobj` `にarr``名前を変更する必要がありますjavascriptの配列

関連する問題