【发布时间】:2021-08-09 22:36:24
【问题描述】:
我有从服务器返回的数据,我需要分类到存储桶中进行显示。
数据是这样的
Array [
Object {
"name": "1.00",
"value": 17,
},
Object {
"name": "1.01",
"value": 10,
},
Object {
"name": "1.5",
"value": 9,
},
Object {
"name": "1.20",
"value": 8,
},
Object {
"name": "1.30",
"value": 7,
},
Object {
"name": "0.80",
"value": 5,
}
]
对于本例,名称是“大小”,值是系统中出现的次数。 IE:(5条大小为“0.80”的记录,8条大小为“1.20”的记录)
最终目标是将数据按如下方式排序:
[
{key: 'Under .30', value: 11},
{key: '.30 to .39', value: 3},
{key: '.40 .49', value: 2},
...
...
{key: '.90 to .99', value: 1},
{key: '1.00 to 1.09', value: 3},
{key: '1.10 to 1.19', value: 2},
...
...
{key: '5.00 to 5.09', value: 5},
{key: '5.00 to 5.09', value: 1},
...
{key: 'Over 10', value: 3},
{key: 'Other', value 21}
]
其中键是大小,值是该分组的总出现次数。
基本上我想做以下事情:
- 对于每一行,将名称解析为浮点数
- 根据其名称确定是否已为此值创建了一个范围。
- 如果不是,则创建范围,按行值递增值
- 如果范围已创建,则将值增加行值
我真的只能考虑提前静态创建所有超过 100 个的数组(0.30 到 10+),然后再次使用 if 语句循环,超过 100 个。
如果有人能帮助解决这个问题,或者让我更好地了解如何解决这个问题,我们将不胜感激!
【问题讨论】:
标签: javascript arrays sorting