JQuery从$ .each到for循环

Dim*_*Dim 2 javascript jquery

我是JQuery的新手,从我设法创建循环的例子,我知道这是一个简单的问题,但我需要你的帮助.如何转换$ .each循环:

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

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

    });
}
Run Code Online (Sandbox Code Playgroud)

为了循环?我试过了:

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

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

    }
Run Code Online (Sandbox Code Playgroud)

但是如何处理key和val呢?

T.J*_*der 7

你非常接近(对于数组).只需添加:

var val;
Run Code Online (Sandbox Code Playgroud)

在顶部然后

val = data[i];
Run Code Online (Sandbox Code Playgroud)

在循环.

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
    } 

}
Run Code Online (Sandbox Code Playgroud)

但我的问题是:为什么这样做?$.each非常方便,尤其是因为它为key/ i和val变量提供了这个包含好的范围.如果您担心每次迭代都要进行函数调用,请不要这样做.

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