数组,对象遍历的方法以及性能

 <!-- 数组循环的几种方法 -->
  <script>
    var arr = ['a', 'b', 'c', 'd', 'e'];
    //for循环
    for (let i = 0; i < arr.length; i++) {
      // console.log(arr[i])
    }
    //for循环优化  ( 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。这种方法基本上是所有循环遍历方法中性能最高的一种)
    for (let i = 0, len = arr.length; i < len; i++) {
      // console.log(arr[i])
    }
    //foreach (数组自带的foreach循环,使用频率较高,实际上性能比普通for循环弱)
    arr.forEach(function (value, index, arr) {
      // console.log(value === arr[index])
      // console.log('-')
    })
    //map
    var arr = ['a', 'b', 'c', 'd', 'e'];
    var arr1 = arr.map(function (value, index, arr) {
      return value = value + "q";
    })
    // console.log(arr1)

    //for...in  
    for (j in arr) {

    }

    //for...of
    for (let value of arr) {

    };
    //forin循环最慢。优化后的普通for循环最快
  </script>


  <!-- 对象循环的几种方式 -->
  <script>
    var obj = {
      name:'小中',
      age:18,
      like:'篮球'
    }
    //for…in 循环
    for(let key in obj){
      // console.log(key)
      // console.log(obj[key])
    }
    //Object.keys方法遍历 (Object.keys返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)。)
    console.log(Object.keys(obj)) //可枚举的key

    //Object.values  获取属性值
    console.log(Object.values(obj))

    //Object.getOwnPropertyNames(obj) 获取属性
    console.log(Object.getOwnPropertyNames(obj)) //所有key
    


  </script>
原文地址:https://www.cnblogs.com/zjz666/p/12769715.html