• javascript 数组 排除null, undefined, 和不存在的元素


    The most common way to loop through the elements of an array is with a for loop: 

    var o = [1,2,3,4,5]
    var keys = Object.keys(o);             // Get an array of property names for object o
    var values = []                   // Store matching property values in this array
    for(var i = 0; i < keys.length; i++) {        // For each index in the array
      var key = keys[i];               // Get the key at that index
      values[i] = o[key];              // Store the value in the values array
    }

    In nested loops, or other contexts where performance is critical, you may sometimes
    see this basic array iteration loop optimized so that the array length is only looked up
    once rather than on each iteration:

    for(var i = 0, len = keys.length; i < len; i++) {
    // loop body remains the same
    }

    These examples assume that the array is dense and that all elements contain valid data.
    If this is not the case, you should test the array elements before using them. If you want
    to exclude null, undefined, and nonexistent elements, you can write this:


      for(var i = 0; i < a.length; i++) {
        if (!a[i]) continue; // Skip null, undefined, and nonexistent elements
          // loop body here
      }

    If you only want to skip undefined and nonexistent elements, you might write:
      for(var i = 0; i < a.length; i++) {
        if (a[i] === undefined) continue; // Skip undefined + nonexistent elements
        // loop body here
      }

    Finally, if you only want to skip indexes for which no array element exists but still want
    to handle existing undefined elements, do this:
      for(var i = 0; i < a.length; i++) {
        if (!(i in a)) continue ; // Skip nonexistent elements
          // loop body here
      }

    You can also use a for/in loop (§5.5.4) with sparse arrays. This loop assigns enumerable property names (including array indexes) to the loop variable one at a time.

    Indexes that do not exist will not be iterated:

      for(var index in sparseArray) {
        var value = sparseArray[index];
        // Now do something with index and value
      }




  • 相关阅读:
    阿里云:面向5G时代的物联网无线连接服务
    走近科学,探究阿里闲鱼团队通过数据提升Flutter体验的真相
    Redis 5.0新功能介绍
    阿里云发布 Redis 5.0 缓存服务:全新 Stream 数据类型带来不一样缓存体验
    荣获“5G MEC优秀商用案例奖”,阿里云边缘计算发力新零售
    阿里云亮相2019联通合作伙伴大会,边缘计算等3款云产品助力5G时代产业数字化转型
    noip2014 寻找道路
    noip2014 无线网络发射器选址
    noip2014 联合权值
    noip2013 华容道
  • 原文地址:https://www.cnblogs.com/facial/p/5144698.html
Copyright © 2020-2023  润新知