javascript - 通过对象值对 json 项进行排序
问题描述
如果我有下面的 JSON 并且我需要遍历数组中的每个对象并通过 num 键对它们进行排序并吐出名称值,我该怎么做呢?我有一个真正的大脑放屁,不记得了。
[{
"name": "bob",
"num": 16
},
{
"name": "mary",
"num": 45
},
{
"name": "tyler",
"num": 3
},
{
"name": "rebecca",
"num": 70
},
{
"name": "michelle",
"num": 81
}]
解决方案
如果您想按升序排序,可以使用sort
带有自定义比较器的内置函数,然后map
将结果存储到名称数组中:
var data = [{
"name": "bob",
"num": 16
},
{
"name": "mary",
"num": 45
},
{
"name": "tyler",
"num": 3
},
{
"name": "rebecca",
"num": 70
},
{
"name": "michelle",
"num": 81
}
];
console.log(data.sort((a, b) => a.num - b.num).map(e => e.name));
用于b.num - a.num
降序。
推荐阅读
- java - 在不检查存在的情况下解决损坏的符号链接
- html - Safari中的引导列+垂直选项卡受到干扰
- android - 如何计算Android手机从手上掉下来的垂直距离?
- reactjs - 如何在 React.js 中获取 URL 值?
- katalon-studio - 我们可以为katalon studio中的文本字段生成随机的唯一字母吗?
- android - 获取麦克风 ID Android API < 23
- c# - C# 使用丢弃'_'
- postgresql - 如何防止 BB8 连接在多次重复后断开
- php - 为 Carbon 的当前实例赋值
- postgresql - 使用 SequelPro 访问本地 postgres