JQuery从$.each到for循环

JQuery from $.each to for loop

本文关键字:for 循环 each JQuery      更新时间:2023-09-26

我对JQuery很陌生,从我成功创建循环的例子来看,我知道这是一个简单的问题,但我需要你的帮助。如何转换$.每个循环:

$.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呢?

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

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也有双重性质:当你给它一个数组时,它会在数组元素中循环。但当你给它一个对象时,它会循环通过对象的可枚举属性。两者都很方便。