gpt4 book ai didi

javascript - 按元素的出现对数组进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 05:57:24 26 4
gpt4 key购买 nike

我正在寻找一种优雅的方法来根据元素的出现对数组进行排序。

例如,在:

['pear', 'apple', 'orange', 'apple', 'orange', 'apple']

输出应该是这样的

['apple', 'orange', 'pear']

我尝试遍历数组并将出现的事件保存在另一个临时数组中,但这个解决方案非常糟糕。

最佳答案

这需要两个循环。

    var arr = ['pear', 'apple', 'orange', 'apple', 'orange', 'apple'];
//find the counts using reduce
var cnts = arr.reduce( function (obj, val) {
obj[val] = (obj[val] || 0) + 1;
return obj;
}, {} );
//Use the keys of the object to get all the values of the array
//and sort those keys by their counts
var sorted = Object.keys(cnts).sort( function(a,b) {
return cnts[b] - cnts[a];
});
console.log(sorted);

关于javascript - 按元素的出现对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396767/

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