一、语法
//一维数组 var arr = [1,2,3,4,5]; $.each(arr, function(){ console.log(this); }); $.each(arr, function(index,ele){ console.log(index + ‘:‘ + ele); }); //二维数组 var arr = [[1, 4, 3], [4, 6, 6], [7, 20, 9]] $.each(arr, function(i, item){ console.log(item[0]); }); //遍历对象属性 var obj = { one:1, two:2, three:3, four:4}; $.each(obj, function(key, val) { console.log(obj[key]); //console.log(key + ‘:‘ + val); });
$.each()可用于遍历任何集合(无论是数组或对象),如果是数组,回调函数每次传入数组的索引和对应的值,方法会返回被遍历对象的第一参数。
$.each()循环里,没有break,continue,可以有return。return alse跳出本次循环并执行循环体后的代码,return true结束本次循环执行下一次循环。
结合jquery源码, 当对象中存在length属性时,$.each 内部使用for循环去遍历对象,,否则它将使用for in循环去遍历。
二、执行效率
var arr = [], arrlen = arr.length = 1000000; for(var i=0; i<arrlen; i++){ arr[i] = ‘looptest‘; }
var t1 = +new Date(); $.each(arr, function(i, ele){ }); var t2 = +new Date(); console.log(‘$.each:‘ + (t2-t1));
比every慢。
时间: 2024-10-12 10:52:29