【发布时间】:2017-01-25 09:18:24
【问题描述】:
有这个简单的功能来计算字母频率
function getFreq(str){
var freq={};
str.replace(/[a-z A-Z]/g, function(match){
freq[match] = (freq[match] || 0) + 1;
return match;
});
console.log(JSON.stringify(freq));
return freq;
}
<input type="text" onchange="getFreq(this.value);" />
输入样本:Hello World
输出:
{"H":1,"e":1,"l":3,"o":2," ":1,"W":1,"r":1,"d":1}
预期输出:
{"d":1,"e":1,"l":3,"o":2,"r":1,"H":1,"W":1," ":1}
-----小写,然后大写,最后是空格
我尝试使用console.log(JSON.stringify(freq.sort())); 对结果进行排序,但没有成功。
【问题讨论】:
-
对象属性没有任何顺序,但在 ES6 中它有顺序(不确定)
-
对象实际上没有顺序。你可以拿钥匙订购它们,然后用它来展示。
-
@PranavCBalan:哦,别这么说。 :-) 他们(现在)这样做了,依赖它只是没有用。
-
可以使用一组排序好的Object.keys来按顺序显示
-
@T.J.Crowder:更新先生,一旦你纠正我:D
标签: javascript sorting