jquery 循环对象

写在前面:

之前用了N年的 jquery ,虽然现在几乎不使用 jquery 了,但是最近才发现,jquery 也可以循环对象。

以前都是使用 jquery 的 each 去循环数组。

可能之前没仔细看过官网内容,之前也没读过 jquery 的源码,刚去翻看了 jquery 的源码,才知道 jquey 源码循环对象用的是 for in 循环。

特此记录一下。

 


一、js 的 for in 循环

  回顾一下 js 的 for in 循环,它可以循环数组,也可以循环对象

var arr=[1,2,3,4,5];
var obj={a:1,b:2};

for(var key in arr){
    console.log(arr[key])
}
// 打印结果为: 1 2 3 4 5 

for(var key in obj){
    console.log(key+":"+obj[key])
}
// 打印结果为: 
    // a:1
    // b:2

二、jquery 的 each 循环

循环数组:

var arr=[1,2,3,4,5];

$(arr).each(function(i,dom){
    console.log(i,dom)
}) 

$.each(arr,function(i,dom){
    console.log(i,dom)
})

上面两个 each 的用法打印出来的结果是一样的,都是:

 循环对象:

  先来看看 $().each() 的使用:

var obj={a:1,b:2};

$(obj).each(function(i,dom){
    console.log(i,dom)
})

  打印结果为:

  

   看来,$().each() 不能循环对象,只能循环数组。传入的对象也是被当做数组来处理了。

   因为 $( ) 的语法本来返回的是一个类数组的对象。往里面传入对象有点荒谬。

  再来看看 $.each() 的使用:

var obj={a:1,b:2}; 

$.each(obj,function(i,dom){
    console.log(i,dom)
})

  打印结果为:

  

  可以看到,$.each() 是可以循环对象的。

 

总结:

  1、$.each( )既可以循环数组,也可以循环对象

  2、 $( ).each( ) 只能循环数组,不能循环对象。

原文地址:https://www.cnblogs.com/smile-fanyin/p/14700203.html