zoukankan      html  css  js  c++  java
  • JS对象和数组的遍历方法

    【原文来自】:https://www.cnblogs.com/chenyablog/

    一、javaScript遍历对象总结

    1、使用Object.keys()遍历
    返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性).

           var obj = {'0':'a','1':'b','2':'c'};
           Object.keys(obj).forEach(function(key){
                console.log(key,obj[key]);
           });
    

    输出:

    a b c

    2、使用for..in..遍历
    循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).

           var obj = {'0':'a','1':'b','2':'c'};
           for(var i in obj) {
                console.log(i,":",obj[i]);
           }
    

    输出:

    a b c

    3、使用Object.getOwnPropertyNames(obj)遍历
    循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).

           var obj = {'0':'a','1':'b','2':'c'};
           Object.getOwnPropertyNames(obj).forEach(function(key){
               console.log(key,obj[key]);
           });
    

    输出:

    a b c

    4、使用Reflect.ownKeys(obj)遍历
    返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.

           var obj = {'0':'a','1':'b','2':'c'};
           Reflect.ownKeys(obj).forEach(function(key){
           console.log(key,obj[key]);
           });
    

    输出:

    a b c

    二、javaScript遍历数组总结

    1、使用forEach遍历

           var arr=[1,2,3,4];
           arr.forEach(function(val, index) {
           console.log(val, index);
           });
    

    输出:

    1 0;2 1;.....

    2、使用for..in..遍历

           var arr=["张三","李四","王五","赵六"];
           for (var i in arr){
           console.log(i,":",arr[i]);
           }
    

    输出:

    0:张三;1:李四;

    3、使用for-of遍历
    不仅支持数组,还支持大多数类数组对象,例如DOM NodeList对象.也支持字符串遍历,它将字符串视为一系列的Unicode字符来进行遍历.

           var arr=["张三","李四","王五","赵六"];
           for (var value of arr){
               console.log(value);
           }
    

    输出:

    张三;李四;

    4、使用for-length遍历
    这种方式比较常用的方式

           var arr=["张三","李四","王五","赵六"];
           for (var i=0;i<arr.length;i++){
               console.log(arr[i]);
           }
    

    输出:

    张三;李四;

    附录:
    之前看过各种不同遍历方式的性能;待补充

  • 相关阅读:
    快速幂
    三角函数与反三角函数的使用
    poj1050 dp动态规划
    归并排序算法
    KMP算法(查找子序列)
    hdu1233 继续畅通工程 (最小生成树——并查集)
    set<pair<int,int> > 的运用
    HDU 4513 吉哥系列故事――完美队形II (manacher算法)
    Codeforces Round #360 (Div. 2) C. NP-Hard Problem (BFS)
    Codeforces Round #357 (Div. 2) C.Heap Operations 优先队列 + 模拟
  • 原文地址:https://www.cnblogs.com/meiguhuaxian/p/12447269.html
Copyright © 2011-2022 走看看