javascript - 有没有一种简单的方法来获取 javascript 对象中所有键的属性?

标签 javascript arrays object for-loop dictionary

所以我创建了这个 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/

相关文章:

javascript - momentjs 格式返回日期休息一天?

javascript - jQuery,如何制作同步动画?

javascript - :nth-child content replacement 更优雅的解决方案

Java 数组算法,将 shuffle 类型从 "in-shuffle"交换到 "out-shuffle"时出错

java - 使用数组计算数字中每个数字的出现次数

javascript - 使用javascript读取多个输入行

c++ - 类似C语言的数组大小分配

javascript - 如何更新reducer store

python - python中两个具有相同值的不同字符串对象

javascript:严格模式和对象