各曲が一意のIDを持つプレイリストシステムを作成しています。プレイリスト配列に曲を追加すると、そのインデックスがIDとして登録されます。
通常、javascript配列をループするときは、長さを取得してインデックスをカウントアップします。未使用のインデックスを持つ配列をループする方法はありますか?それは何らかの理由で悪い習慣ですか?
各曲が一意のIDを持つプレイリストシステムを作成しています。プレイリスト配列に曲を追加すると、そのインデックスがIDとして登録されます。
通常、javascript配列をループするときは、長さを取得してインデックスをカウントアップします。未使用のインデックスを持つ配列をループする方法はありますか?それは何らかの理由で悪い習慣ですか?
var obj = {"123": "Lalala",
"456": "dum dum"};
for(var i in obj){
//i = ID
// obj[i] = "song"
}
for(var i in obj)
オブジェクトをループするために使用します。このステートメントの意味を理解するには、上記のコメントを参照してくださいfor
。
ちなみに、あなたは配列ではなくオブジェクトについて話している:
var array = [7, 5, 9];
この方法で配列をシミュレートできるため、をfor(var i=0; i<array_like.length; i++)
使用できます。配列関数(などpop
)は、次のように定義しない限り、それらで使用することはできません。
var array_like = {0:7, 1:5, 2:9, length:3};
オブジェクトのプロパティには、2つの方法のいずれかでアクセスできます。「。」を使用する そのような:
var my prop = obj.property;
または角かっこ表記を介して:
var my prop = obj["property"];
さて、それはあなたの質問に本当に答えません。だから、ここにいくつかの方法があります:
jQueryの各関数を利用します。
$.each(obj, function(key, value){
//Do something with your key and value.
});
関数にJavascriptを利用します。
for(var key in obj)
{
var value = obj[key];
//Do something with your key and value.
}
お役に立てば幸いです。
for each
プロパティ値のみを反復処理することもできます。
var obj = {"key1": "val1",
"key2": "val2"};
for each(var value in obj) {
....
}
ただし、この場合、プロパティ名にアクセスすることはできません。
配列が次の形式であると仮定します。
array['id1'] = 'val1';
array['id2'] = 'val2';
array['id3'] = 'val3';
次を使用して、値を反復処理できます。
for (var id in array) {
document.write(id + ' – ' + array[id]);
}