可能重复:
按属性值对 JavaScript 对象进行排序
我想在我的 JSON 中获得一些价值的最佳结果。用这个例子更容易解释:
var jsonData = {
bom: [
{
"Component":"Some Thing",
"Version":"Version ABC",
"License":"License ABC",
},
{
"Component":"Another Thing",
"Version":"Version XYZ",
"License":"License ABC",
},
etc ....
]
}
所以我的目标是确定“License ABC”或其他有 X 次出现,然后我希望能够对这些 key:val 对进行排序以插入到 DOM 中,因为“最流行的 X 许可证是:
- 许可证 ABC - 100
- 许可证 XYZ - 70
- 许可证 123 - 25
现在我有这个:
var countResults = function() {
var fileLicenses = [];
for ( var i = 0, arrLen = jsonData.files.length; i < arrLen; ++i ) {
fileLicenses.push(jsonData.files[i]["License"]);
}
keyCount = {};
for(i = 0; i < fileLicenses.length; ++i) {
if(!keyCount[fileLicenses[i]]) {
keyCount[fileLicenses[i]] = 0;
}
++keyCount[fileLicenses[i]];
}
console.log( keyCount );
}();
这让我得到了我想要的大部分东西,一个带有键的对象:值
{
thisKey : 78,
thatKey :125,
another key : 200,
another key : 272,
another key : 45,
etc ...
}
但我不知道该怎么做。我只需要对右列的数字进行排序,并让相关的键随行。想法?谢谢!