我想用Javascript对JSON进行排序

我想用Javascript对JSON进行排序,javascript,json,sorting,Javascript,Json,Sorting,我有一个需要按字母顺序(基于值)排序的JSON JSON是按键排序的,但我想用值按字母顺序排序 我的期望值是(根据值排序) 如果有人能在这方面给我指导,那将非常有帮助。来自 因此,让我们将其转化为您的用例: const objFromJson={ 1:“你的专业”, 2:“描述服装”, 3.“描述人”, 4:“看医生”, 5:“在超市”, 6.“烹饪”, 7:“下班后”, 8:“描述物体和地点”, 9.“提问”, 10:“城市之旅” } 设ar=[] //将对象转换为对象数组 for(objF

我有一个需要按字母顺序(基于值)排序的JSON

JSON是按键排序的,但我想用
按字母顺序排序

我的期望值是(根据
值排序)

如果有人能在这方面给我指导,那将非常有帮助。

来自

因此,让我们将其转化为您的用例:

const objFromJson={
1:“你的专业”,
2:“描述服装”,
3.“描述人”,
4:“看医生”,
5:“在超市”,
6.“烹饪”,
7:“下班后”,
8:“描述物体和地点”,
9.“提问”,
10:“城市之旅”
}
设ar=[]
//将对象转换为对象数组
for(objFromJson中的常量键){
ar.push({id:key,value:objFromJson[key]})
}
控制台日志(ar)
//按值排序
ar.sort(功能(a、b){
返回a.value>b.value;
});

log(ar)
如果您可以访问后端,我会将其作为数组发送,因为JSON没有排序

但是,如果必须在客户端执行此操作:

const myJSON = {1: 'Key one', 2: 'Key two'}
const sorted = Object.keys(myJSON)
  .map(Number)
  .sort((a, b)=> b - a)
  .map(item=> {
    const obj = {}
    obj[item] = myJSON[item]
    return obj
  })
如果可以使用数组,只需执行以下操作

.map(item => myJSON[item])

您拥有的看起来更像一个JS对象。JS对象没有任何特定的顺序,因此无法对对象进行排序。重新绘制JSON字符串或多或少是徒劳的,因为当它转换为对象时,不能保证密钥的顺序。这是无效的。JSONHow是<代码>与对象相关的排序< /代码>。考虑添加一些解释来避免下降。用<代码>数组。从对不起,如果太晚了concise@3Dos非常感谢你的快速回答。你能解释一下这部分内容吗?
for(objFromJson中的const key){ar.push({id:key,value:objFromJson[key]})}
我应该如何在那里传递键和值?
var items = [
  { name: "Edward", value: 21 },
  { name: "Sharpe", value: 37 },
  { name: "And", value: 45 },
  { name: "The", value: -12 },
  { name: "Magnetic", value: 13 },
  { name: "Zeros", value: 37 }
];
items.sort(function (a, b) {
  return a.value - b.value;
});
const myJSON = {1: 'Key one', 2: 'Key two'}
const sorted = Object.keys(myJSON)
  .map(Number)
  .sort((a, b)=> b - a)
  .map(item=> {
    const obj = {}
    obj[item] = myJSON[item]
    return obj
  })
.map(item => myJSON[item])