【问题标题】:Sorting a group based on value根据值对组进行排序
【发布时间】:2020-08-06 10:01:57
【问题描述】:

我有一个名为 p 的组。在对该组执行某些操作时,我得到了如图所示的相应输出-

p.all()
>> 01: {key: "A", value: {count:2}}
>> 102: {key: "B", value: {count:10}}
>> 103: {key: "C", value: {count:4}}
p5.all()[0].value.count
>> 2
p5.all()[1].value.count
>> 10
p5.all()[1].key
>> "B"
我想根据计数对前 2 个值进行排序。所以输出应该是:
{key: "B", value: {count:10}}
{key: "C", value: {count:4}}

我该如何对其进行排序?

【问题讨论】:

  • 如果你添加 [javascript] 标签,你会得到很多 javascript 答案。如果您想要交叉过滤器的答案,最好不要使用更广泛的 [javascript] 标记。交叉过滤器的答案是使用 .top().order()

标签: javascript highcharts mapreduce crossfilter


【解决方案1】:

const myArray = [
  {key: "A", value: {count:2}},
  {key: "B", value: {count:10}},
  {key: "C", value: {count:4}},
]

const sortedArray = myArray.sort((a, b) => b.value.count - a.value.count);

console.log(sortedArray);

【讨论】:

  • 我相信 OP 希望结果按降序排列,因此她可以通过使用 sortedArray.reverse() 来扩展您的答案。
  • 我实际上想要 crossfilter 的答案。请查看我的最新帖子。
  • @NishitaSinha 你所说的交叉过滤器到底是什么意思?
【解决方案2】:

const groupP = [
  {key: "A", value: {count:2}},
  {key: "B", value: {count:10}},
  {key: "C", value: {count:4}},
]

const sortedGroupP = groupP.sort((a, b) => a.value.count - b.value.count);

console.log(sortedGroupP[groupP.length -2]);
console.log(sortedGroupP[groupP.length - 1]);

【讨论】:

  • 我实际上想要 crossfilter 的答案。请查看我的最新帖子。
  • @NishitaSinha 我没听懂,交叉过滤器是什么意思?
【解决方案3】:

const myArray = [
  { key: "A", value: { count: 2 } },
  { key: "B", value: { count: 10 } },
  { key: "C", value: { count: 4 } },
];

const result = myArray.sort((a, b) => b.value.count - a.value.count).splice(0, 2);

console.log(result);

【讨论】:

  • 嘿,谢谢。它适用于 js,但我实际上想要 crossfilter 的答案。请查看我的最新帖子。
猜你喜欢
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
  • 2013-05-14
  • 2015-04-08
  • 1970-01-01
  • 2019-08-10
  • 2019-09-06
  • 1970-01-01
相关资源
最近更新 更多