首页 > 解决方案 > 我可以在没有任何循环的情况下计算我的 JSON 属性吗?

问题描述

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

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 个属性(颜色和大小)。

标签: javascriptarraysjsonloopscounting

解决方案


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


推荐阅读