【问题标题】:How to find number of keys in Javascript variable? [duplicate]如何在 Javascript 变量中查找键的数量? [复制]
【发布时间】:2014-03-08 12:16:05
【问题描述】:

我有一个变量如下:

var keyValues={
  key1:{
  ----------
  },
  key2:{
  ----------
  }
}

如何找到 keyValues 的长度?就像我需要keyValues.length=2

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    有几种方法可以做到这一点。最简单的就是使用Object.keysdocumentation):

    console.log(Object.keys(keyValues).length);
    

    这基本上等同于:

    var count = 0;
    for(var key in keyValues){
        if(keyValues.hasOwnProperty(key)) count++;
    }
    console.log(count):
    

    请注意,只会计算属于对象本身的键,而不是对象原型链上的键。如果需要统计所有键(包括原型链中的键),只需省略上面对hasOwnProperty的调用即可:

    var count = 0;
    for(var key in keyValues){
        count++;
    }
    console.log('all keys, including prototype chain: ' + count):
    

    请注意,这些方法不会计算未标记为可枚举的属性,这可能正是您想要的。如果你真的想得到所有最后的东西(包括标记为可枚举的东西),你必须使用Object.getOwnPropertyNames() (documentation) 并自己走原型链。就像我说的,这可能不是你想要的:如果有人不厌其烦地让一个属性不可枚举,那是因为他们不希望它被枚举。只要确保我的答案涵盖所有基础!

    【讨论】:

      【解决方案2】:
      Object.keys(keyValues).length;
      

      【讨论】:

      • 这会仅显示 keyValues 自己的键计数还是继承?
      【解决方案3】:

      Object.keys(keyValues).length 可以。但是,如果它也包括继承的属性。要仅获取对象的属性,您需要使用Object.hasOwnProperty(key)

      【讨论】:

        猜你喜欢
        • 2012-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 2014-08-02
        • 1970-01-01
        • 2018-12-23
        相关资源
        最近更新 更多