美文网首页
js遍历与jQuery遍历

js遍历与jQuery遍历

作者: 牛奶是本命___ | 来源:发表于2016-12-01 21:23 被阅读0次

js遍历与jQuery遍历

js遍历数组和对象

for...

var demoArr = ['Javascript', 'Gulp', 'CSS3', 'Grunt', 'jQuery', 'angular'];

(function() {    
              for(var i=0, len=demoArr.length; i<len; i++){
                    console.log('demo1Arr['+i+']:'+demo1Arr[i]);
              }
  })();

  • for循环中的i在循环结束之后任然存在与作用域中,为了避免影响作用域中的其他变量,使用函数自执行的方式将其隔离起来()();
  • 避免使用for(var i=0; i 的方式,这样的数组长度每次都被计算,效率低于上面的方式。也可以将变量声明放在for的前面来执行,提高阅读性

var i = 0, len = demo1Arr.length;
for(; i<len; i++) {};

for...in...

for(var item in arr|obj){} 可以用于遍历数组和对象

  • 遍历数组时,item表示索引值, arr表示当前索引值对应的元素 arr[item]

  • 遍历对象时,item表示key值,arr表示key值对应的value值 obj[item]

遍历数组:


(function() {

for(var i in demoArr) {

console.log("demoArr[i]:" + demoArr[i]);

}

})();

遍历对象:

var man ={hands:2,legs:2,heads:1};


for(var i in man){

if (man.hasOwnProperty(i)) {        //filter,只输出man的私有属性

console.log(i,":",man[i]);

};

}

//输出结果为print hands:2,legs:2,heads:1


for(var i in man) {

//不使用过滤

console.log(i,":",man[i]);

}

//输出结果为

//hands : 2

//legs : 2

//heads : 1

forEach...只能遍历数组


demoArr.forEach(function(val, index) {

console.log(val, index);

})

  • 回调函数中有2个参数,分别表示值和索引,这一点与jQuery中的$.each相反

  • forEach无法遍历对象

  • forEach无法在IE中使用,firefox和chrome实现了该方法

  • forEach无法使用break,continue跳出循环,使用return时,效果和在for循环中使用continue一致

jQuery遍历数组和对象

$.each

$.each(demoArr|demoObj, function(e, ele))

可以用来遍历数组和对象,其中e表示索引值或者key值,ele表示value值


$.each(demoArr, function(e, ele) {

console.log(e, ele);

})

//输出结果:

0 "Javascript"

1 "Gulp"

2 "CSS3"

3 "Grunt"

4 "jQuery"

5 "angular"

var demoObj = {
aaa: 'Javascript',
bbb: 'Gulp',
ccc: 'CSS3',
ddd: 'Grunt',
eee: 'jQuery',
fff: 'angular'
};


$.each(demoObj,function(index,value){

console.log(index,value);

})

//输出结果:

aaa Javascript

bbb Gulp

ccc CSS3

ddd Grunt

eee jQuery

fff angular

$(selecter).each


$('.list li').each(function(i, ele) {

console.log(i, ele);

})

相关文章

网友评论

      本文标题: js遍历与jQuery遍历

      本文链接:https://www.haomeiwen.com/subject/fekfmttx.html