美文网首页
JavaScript数组遍历和对象遍历

JavaScript数组遍历和对象遍历

作者: 卓三阳 | 来源:发表于2019-06-09 22:03 被阅读0次
    JS数组遍历:
    1. 普通for循环,经常用的数组遍历
    let arr = [1,2,5,3,9];
    for ( let i = 0; i <arr.length; i++){
       console.log(arr[i]);
    }
    
    2. 优化版for循环:使用变量,将长度缓存起来,避免重复获取长度,数组很大时优化效果明显
    for(let i= 0,len = arr.length; i< len; i++){
        console.log(arr[i]);
    }
    
    3. forEach,ES5推出的,数组自带的循环,主要功能是遍历数组,实际性能比for弱
    arr.forEach((item,i)=>{
      console.log('forEach遍历:'+i+'--'+item);
    })
    

    forEach这种方法也有一个小缺陷:你不能使用break语句中断循环,也不能使用return语句返回到外层函数。
    forEach是ECMA5新增数组的方法,所以ie9以下的浏览器还不支持

    4. for-of遍历 是ES6新增功能
    for( let item of arr){
        console.log(item);
    }
    
    • for-of这个方法避开了for-in循环的所有缺陷
    • 与forEach()不同的是,它可以正确响应break、continue和return语句
    • for-of循环也支持字符串遍历
      一种数据结构只要部署了Iterator 接口,就可以使用 let of 循环

    JS对象遍历:
    1.使用for..in..遍历

    循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).可以使用obj.hasOwnProperty 判定是否是自身的属性。

    let  obj={id:1,name:'zzh'}
    for(let k in obj){
    console.log(obj[k])
    }
    
    2.使用Object.keys()遍历

    返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)

    Object.keys(obj).forEach(function(k){
         console.log(key,obj[k]);
    });
    
    3.使用Object.getOwnPropertyNames(obj)遍历

    返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)

    Object.getOwnPropertyNames(obj).forEach(function(k){
        console.log(k,obj[k]);
    });
    

    相关文章

      网友评论

          本文标题:JavaScript数组遍历和对象遍历

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