【发布时间】:2014-10-20 02:54:57
【问题描述】:
大家好,我想创建一个函数,它接收一个字符串并返回一个对象,该对象具有字符串中字母频率的映射。此外,我希望我的函数以降序返回按频率排序的对象。所以我期待的是letterfreq("ssabbb") => {b:3,s:2,a:1}。我写了一个返回频率映射的函数,这个函数是
function letterfreq(str) {
var mapping = {};
var NoSpaceStr = str.replace(/[\s]/g,"");
for(var i = 0; i < NoSpaceStr.length; i++){
if(!mapping[NoSpaceStr[i]])
{mapping[NoSpaceStr[i]] = 0;}
mapping[NoSpaceStr[i]] += 1;}
return mapping
}
问题是我对基于属性值的排序有点困惑。我查看了this,第一个回复得到了很高的评价。他使对象成为数组数组,然后继续说“一旦有了数组,就可以按照自己喜欢的顺序从数组中重建对象,从而完全实现您的目标。”我不完全确定如何做到这一点。我想知道是否有人对此有初学者可以理解的解决方案。我发布的链接中的问题的答案有点压倒性。任何建议或帮助都会很棒。谢谢!顺便说一句,这是 CoderByte 问题的一部分。
【问题讨论】:
-
对象是内部的哈希图,不能排序。
标签: javascript sorting object