美文网首页
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