javascript - 如何使用多个键按对象的值对对象进行排序?
问题描述
{
"CYLINDER": 2986,
"HYDRAULIC": 1421,
"JACKS": 84,
"INSTALLATION": 119,
"REAR": 61,
"JACK": 334,
"TUBE": 1,
"FEED": 114,
"ASSEMBLY": 326,
"DCS": 2,
"TOWER": 65,
"RAISING": 8,
"BREAKOUT": 6,
}
我创建了这个函数,我将每个字符串组合在一起并添加一个计数(作为键的值,见上文)
function generateCountDuplication(wordArray) {
const countedWords = wordArray.reduce(function(allWords, word) {
if (word in allWords) {
allWords[word]++;
}
else {
allWords[word] = 1;
}
return allWords;
}, {});
return countedWords;
}
我试图谷歌并在 Stackoverflow 上查看这里,但没有找到任何在key is not unique 时按值排序的地方。任何线索如何解决?
我想要这个结果:
{
"TUBE": 1,
"DCS": 2,
"BREAKOUT": 6,
"RAISING": 8,
"REAR": 61,
"TOWER": 65,
"JACKS": 84,
"FEED": 114,
"INSTALLATION": 119,
"ASSEMBLY": 326,
"JACK": 334,
"HYDRAULIC": 1421,
"CYLINDER": 2986
}
解决方案
UnsingObject.keys()
并map
如下所示,您可以达到预期的效果。
const list = {
"CYLINDER": 2986,
"HYDRAULIC": 1421,
"JACKS": 84,
"INSTALLATION": 119,
"REAR": 61,
"JACK": 334,
"TUBE": 1,
"FEED": 114,
"ASSEMBLY": 326,
"DCS": 2,
"TOWER": 65,
"RAISING": 8,
"BREAKOUT": 6,
};
var newList = {};
Object.keys(list).sort(function(a,b){return list[a]-list[b]})
.map(key => newList[key] = list[key]);
console.log(newList);
推荐阅读
- javascript - 如何搜索轻量级 JS 包(替代库来替换我的库)?
- python - 使用 counter.collection 将列表中的单词与文本文件进行比较
- java - URI 和双斜杠
- python - 计算字符串python中子字符串的出现次数
- hive - 具有分组依据的 Hive 子查询
- javascript - 我只想取出数字
- python - istitle 使用 def 的问题
- javascript - 使用 ResizeObserver 和媒体查询获得相同的结果
- kubernetes - ISTIO 出口网关流程
- azure-active-directory - 清单中的 Azure AD B2C 应用程序更改显示内部服务器错误