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]);
       }

输出:

张三;李四;

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

posted @ 2020-03-09 10:50  梅谷暴君  阅读(297)  评论(0编辑  收藏  举报