5

各曲が一意のIDを持つプレイリストシステムを作成しています。プレイリスト配列に曲を追加すると、そのインデックスがIDとして登録されます。

通常、javascript配列をループするときは、長さを取得してインデックスをカウントアップします。未使用のインデックスを持つ配列をループする方法はありますか?それは何らかの理由で悪い習慣ですか?

4

4 に答える 4

5
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};
于 2011-09-24T16:11:09.073 に答える
4

オブジェクトのプロパティには、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.
}

お役に立てば幸いです。

于 2011-09-24T16:15:45.827 に答える
0

for eachプロパティ値のみを反復処理することもできます。

var obj = {"key1": "val1",
           "key2": "val2"};

for each(var value in obj) {
    ....
}

ただし、この場合、プロパティ名にアクセスすることはできません。

于 2011-09-24T16:58:11.573 に答える
-1

配列が次の形式であると仮定します。

array['id1'] = 'val1';
array['id2'] = 'val2';
array['id3'] = 'val3';

次を使用して、値を反復処理できます。

for (var id in array) {  
  document.write(id + ' – ' + array[id]);
} 
于 2011-09-24T16:13:31.597 に答える