【问题标题】:How to find the length of a JSON object [duplicate]如何查找 JSON 对象的长度 [重复]
【发布时间】:2017-03-30 05:44:02
【问题描述】:
 var legend=[{"min":0,
            "max":first_color,
            "color":"#1a9850"
  },
  {
      "min":first_color,
      "max":sec_color,
      "color":"#fee08b"
  },
  {
      "min":sec_color,
      "max":thrd_color,
      "color":"#ff3300"
  },
  {
      "min":thrd_color,
      "max":frth_color,
      "color":"#d73027"
      "Abc":"gsfg"
  }

  ];

我想找出每个对象的属性计数。例如。前 3 个对象有 3 个属性,第 4 个对象有 4 个道具,依此类推。

【问题讨论】:

  • 那不是 JSON;这是一个 JavaScript 数组。
  • 1.迭代 2. 获取数组 3 中的当前元素。Object.keys(arrayEl).length
  • 你能在js中发布你的代码吗
  • “coz m”是什么意思?
  • 你卡在哪里了?您在遍历数组中的元素/对象时遇到问题吗?您在获取每个对象的键列表时遇到问题吗?

标签: javascript json


【解决方案1】:

你可以使用 Object.keys

 console.log(Object.keys(legend[0]).length)// 3

 console.log(Object.keys(legend[3]).length);//4

【讨论】:

    【解决方案2】:

    但更好的解决方案是将 Object 原型化

    Object.size = function(obj) {
       return Object.keys(obj).length;
    }
    

    【讨论】:

    • 为什么这是一个更好的解决方案?
    • @torazaburo 因为超过 1 次使用会更干净。 Object.size(obj) 更简单,更易于阅读。
    【解决方案3】:

    遍历数组并获取对象属性名称计数。

    var legend = [{
      "min": 0,
      "max": 'first_color',
      "color": "#1a9850"
    }, {
      "min": 'first_color',
      "max": 'sec_color',
      "color": "#fee08b"
    }, {
      "min": 'sec_color',
      "max": 'thrd_color',
      "color": "#ff3300"
    }, {
      "min": 'thrd_color',
      "max": 'frth_color',
      "color": "#d73027",
      "Abc": "gsfg"
    }];
    
    var res = legend.map(function(v) {
      console.log(Object.keys(v).length);
      return Object.keys(v).length;
    });
    
    console.log(res);

    【讨论】:

    • 我真的必须记得使用 map more +1 来获得一个干净的解决方案!
    • 还有一个愚蠢的问题,如果我想知道 json 数组中的哪个字段,首先是最小最大和颜色,第四个是最小最大颜色和 Abc 等
    • 因为迭代对象我们必须知道关键
    • Object.keys 返回一个键数组,因此您可以再次使用 map 或常规 for 循环对其进行迭代。
    • 非常感谢您.......
    猜你喜欢
    • 1970-01-01
    • 2011-03-15
    • 2017-10-04
    • 2011-03-21
    • 2011-07-28
    • 2017-03-06
    • 2017-04-14
    • 2020-03-27
    • 2013-06-15
    相关资源
    最近更新 更多