【发布时间】:2023-03-12 01:50:01
【问题描述】:
假设我有一个这种形式的数组
[
[val1,val2,val3],
[val4,val2,val1]
....
]
更新-对不起,我对我的要求不太清楚。我的意思是这个
输出应该是这样的对象数组
[ {[val1,val2,val3] : 1}, {[val4,val2,val1] : 1}],
我刚刚意识到,上面的 json 非常愚蠢,我认为创建这样的对象更有意义
{ selectedRowIndices: [rows that have the value], freq: the frequency}
我想到了下划线并使用它的 groupBy 函数,实际上,使用简单的数组成功地做到了这一点,使用
groups = _(values)
.chain()
.groupBy(_.identity)
.map((values, key) ->
freq: values.length
value: key
).sortBy((d) ->
d.value
).value()
但是,我不确定如何使用上述数组。
【问题讨论】:
-
先展平阵列? underscorejs.org/#flatten。由于您使用 JavaScript 处理数据,因此您的问题与 JSON 无关。
-
那不知道是不是在处理第三栏的东西?
-
你要
.groupBy((d)->d[2])吗? -
哦,我现在明白了。嗯,这是最简单的方法,你遍历外部数组并将每个内部数组的第三个元素放入一个新数组中。
-
如果您在第三列中有两个具有相同值的数组,例如
[ [val2,val3,val1], [val4,val5,val1] ],该怎么办?并注意数组不是键(必须是字符串)
标签: javascript coffeescript underscore.js