所以我创建了这个 JS 代码来获取一个映射,其中字符串中的每个单词都是键,该单词出现的次数是值。
var txtArray = txtVar.split(" ");
var txtMap = {};
for (var i = 0; i<txtArray.length;i++){
if(txtArray[i] in txtMap)
txtMap[txtArray[i]] += 1;
else
txtMap[txtArray[i]] = 1;
}
现在我需要对它们进行排序,以便我可以以某种方式按 10 个最长的单词和 10 个最常用的单词等对它们进行排名,我想我可以找到一种方法来通过创建一个 for 循环来实现这一点,我将它们存储在其中数组,然后当新的单词出现时将最旧的“顶部”单词向上或向下推到列表中,但我认为必须有一种不那么尴尬的方法来完成这项任务?
最佳答案
这可能是一个足够的方法来完成您当前正在做的事情,然后在完成后对这些结果进行排序/切片:
var allWords = Object.keys(txtMap);
var tenMostFrequent = allWords
.sort((a, b) => txtMap[b] - txtMap[a])
.slice(0, 10);
var longestWords = allWords
.sort((a, b) => b.length - a.length)
.slice(0, 10);
关于javascript - 有没有一种简单的方法来获取 javascript 对象中所有键的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39970560/