gpt4 book ai didi

underscore.js - 按出现次数计数和排序

转载 作者:行者123 更新时间:2023-12-03 20:18:18 27 4
gpt4 key购买 nike

我有一个这样的数组:

var items = [
{name: 'popcorn', category: 'snacks'},
{name: 'nachos', category: 'snacks'},
...
{name: 'coke', category: 'drinks'}
];

我想得到一个按项目数量排序的类别列表(大多数项目在前):
['snacks', 'drinks']

这是我如何做到的:
var categories = _.chain(items)
.countBy(function (i) { return i.category })
.pairs()
.sortBy(function (c) { return -c[1] })
.map(function (c) { return c[0] })
.value();

所以 countBy的结果是一个对象,我必须使用 pairs将其转换为数组数组以便对其进行排序。

我想知道是否有更直接的方法来做到这一点?内置功能?

最佳答案

I wonder if there is a built-in function?



不,你的方法很好。

more straightforward way to do it?



您可以通过仅传递属性名称而不是函数来缩短它:
var categories = _.chain(items)
.countBy("category")
.pairs()
.sortBy(1).reverse()
.pluck(0)
.value();

关于underscore.js - 按出现次数计数和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19073833/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com