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/ival变量提供了这个很好的包含范围。如果您担心在每次迭代中调用函数,请不要.

$.each也有双重性质:当你给它一个数组时,它会循环遍历数组元素。但是当你给它一个对象时,它会遍历对象的可枚举属性。两者都很方便。

于 2013-08-11T09:11:22.303 回答