【发布时间】:2015-11-07 03:08:01
【问题描述】:
我有一个数组,看起来像这样:
colors = [
[356, 11, 30, 1],
[354, 10, 1, 1],
[220, 15, 33, 14],
[51, 4, 69, 31],
[38, 4, 54, 32],
[33, 53, 52, 33],
[19, 28, 78, 34],
[0, 0, 27, 36]
];
它是一个 HSL 颜色数组,colors[0]、colors[1]、colors[2] 代表 HSL 值,colors[3] 代表该颜色所属的组。我有 36 组颜色。
我希望能够获得每组中颜色的频率(因此计数color[3])并求和每组的colors[1]。
你能帮我设置我的代码吗?我已经尝试为每个组创建一个带有键的对象,以使其更易于使用,但无法...
这是我试图转换数组并使其更容易进行总和和频率计算的代码:
hueGroups = {};
for (var i = 0;i<colors.length-1;i++) {
var group = colors[i][3];
hueGroups[group] = colors[i];
}
And it gives me:
{ '1': [ 354, 10, 1, 1 ],
'14': [ 220, 15, 33, 14 ],
'31': [ 51, 4, 69, 31 ],
'32': [ 38, 4, 54, 32 ],
'33': [ 33, 53, 52, 33 ],
'34': [ 19, 28, 78, 34 ] }
我也不想使用外部库,我见过使用 Underscore.js 的解决方案。
【问题讨论】:
-
@Jonathan Lonowski 感谢您的链接。我对此很陌生,不是在那个链接中使用 underscore.js.. 选择了答案吗?
标签: javascript arrays grouping