2012-06-07 7 views
5

こんにちはのキーを取得します。

どうすれば簡単に手に入りますか?

おかげ

+5

配列には関連キーがありません。インデックスがキーです。あなたは何をしようとしているのですか? – Guffa

+2

あなたはどこにいるのですか?つまり、メッセージです。投稿する – thecodeparadox

+1

サンプル配列(2-3要素)とあなたが期待する "連想キー"を教えてください。 –

答えて

9
var data = { 
    val1 : 'text1', 
    val2 : 'text2', 
    val3 : 'text3' 
}; 
$.each(data, function(key, value) { 
    alert("The key is '" + key + "' and the value is '" + value + "'"); 
}); 
​ 

にはJavaScriptを有効にPHPのような "連想配列" が、オブジェクトを持っていないDemo

+0

ありがとう、私はあなたが正しいこの作品を得るために配列を使用します –

0

を参照してください。オブジェクトには、値に対応する文字列キーが含まれている場合があります。配列は数値の数値のリストで、なので、keyが数字の場合は、オブジェクトではなく作業対象の配列でなければならないため、キーを取得できません。

したがって、$.eachのようなコールバックベースのイテレータではなく、単純なfor -loopの配列を反復処理したいとします。

19

JavaScriptには「連想配列」がありません。

[1, 2, 3, 4, 5] 

とオブジェクト:これはアレイを有する

{a: 1, b: 2, c: 3, d: 4, e: 5} 

配列のアレイは[]を用い

にアクセスされる0から始まるカウントされ、「キー」、彼らは、インデックスを持ってしていませんオブジェクトには[]または.を使用してアクセスできます。

例:

var array = [1,2,3]; 
array[1] = 4; 
console.log(array); // [1,4,3] 

var obj = {}; 
obj.test = 16; 
obj['123'] = 24; 
console.log(obj); // {test: 16, 123: 24} 

あなたは問題を引き起こすかもしれない、代わりにint型のキーとして文字列を使用してアレイにアクセスしようとします。値ではなく配列のプロパティを設定します。

var array = [1,2,3]; 
array['test'] = 4; // this doesn't set a value in the array 
console.log(array); // [1,2,3] 
console.log(array.test); // 4 

jQueryの$.eachは、これらの両方で動作します。 $.eachのコールバックでは、最初のパラメータkeyはオブジェクトのキーまたは配列のインデックスのいずれかです。

$.each([1, 2, 3, 4, 5], function(key, value){ 
    console.log(key); // logs 0 1 2 3 4 
}); 

$.each({a: 1, b: 2, c: 3, d: 4, e: 5}, function(key, value){ 
    console.log(key); // logs 'a' 'b' 'c' 'd' 'e' 
}); 
関連する問題