嗨,大家好我想创建一个函数,它接受一个字符串并返回一个对象,该对象具有字符串中字母频率的映射。另外,我希望我的函数以降序的方式返回按频率排序的对象。所以我期待的是letterfreq("ssabbb")
=>{b:3,s:2,a:1}
。我写了返回频率的映射函数,这个函数是在str中创建字母频率的映射在Javascript中
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问题的一部分。
对象是内部hashmaps,他们不能订购。 – thefourtheye 2014-10-20 02:56:25