2

私はループを作成することができた例から、JQuery に非常に慣れていません。簡単な質問は知っていますが、あなたの助けが必要です。$.each ループを変換するにはどうすればよいですか:

$.getJSON('db.json', function(data) 
 {
   $.each(data, function(key, val) 
    {

        if(typeof val === 'object') 
        {
            checkObj(key, val, items);
        } 

    });
}

forループに?私が試してみました:

for (var i=0; i< data.length; i++)
    {

        if(typeof val === 'object') 
        {
            checkObj(key, val, items);
        } 

    }

しかし、key と val をどうするか?

4

1 に答える 1

7

あなたは非常に近いです(配列の場合)。追加するだけです:

var val;

一番上に

val = data[i];

ループの中。

var i, val;
for (i=0; i< data.length; i++)
{
    val = data[i];
    if(typeof val === 'object') 
    {
        checkObj(i, val, items);
        //       ^----- `i`, not `key`, since you used `i` instead of `key` for the loop
    } 

}

しかし、私の質問は次のとおりです。なぜそれを行うのですか? $.eachこれは非常に便利です。これは、変数key/iおよびval変数に適切な包含スコープを提供するためです。反復ごとに関数呼び出しを行うことを心配している場合でも、気にしないでください。

$.eachまた、二重の性質があります。配列を指定すると、配列要素をループします。しかし、オブジェクトを与えると、オブジェクトの列挙可能なプロパティをループします。どちらもかなり便利です。

于 2013-08-11T09:11:22.303 に答える