【问题标题】:Can I count my JSON properties without any loop?我可以在没有任何循环的情况下计算我的 JSON 属性吗?
【发布时间】:2018-09-05 20:40:08
【问题描述】:

我有这个问题。我有成千上万个具有不同属性的数据,我需要把它们的属性以及这些属性重复了多少。例如;

0:[
  variants:{
    "color":"blue"
    "size":"3"
  }
]
1:[
   variants:{
     "color":"blue"
     "size":"2"
    }
  ]
2:[
  variants:{
    "color":"red"
    "size":"2"
  }
]


color=>blue (2)
color=>red (1)

size=>2(2)
size=>3(1)

但显然有成千上万的数据。

如果我用循环计算它,性能会受到影响吗?我可以在没有任何循环的情况下计算它吗?另一件事是我有 500 个而不是 2 个属性(颜色和大小)。

【问题讨论】:

  • 那是无效的 json
  • 性能会受到影响吗? 与什么有关?一个包含 500 个项目的简单 for 循环最坏情况下需要几毫秒
  • 涉及超过 100,000 种产品,超过 500 件商品

标签: javascript arrays json loops counting


【解决方案1】:

要计算这些属性,您必须遍历整个对象。如果不迭代整个对象,则无法检查此对象的每个属性。即使你使用看起来不像循环的东西,比如for 语句,它仍然会迭代整个对象,所以你不能为性能做太多事情。如果您不想直接使用循环,可以使用一些内置迭代器或 lodash 来完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 2015-12-02
    • 1970-01-01
    • 2017-12-31
    • 2019-01-31
    相关资源
    最近更新 更多