javascript中基于值的对象键排序
我收到来自第三方api的奇怪响应,如下所示javascript中基于值的对象键排序,javascript,object,Javascript,Object,我收到来自第三方api的奇怪响应,如下所示 { "27000CE": -1, "27100CE": 2, "27300CE": -1, "27200CE": 5 } sortArrayOfObjects = (arr, key) => { return arr.sort((a, b) => { return a[key] - b[key]; }); }; 如何按值对其进行排序 像上升或下降 { "27300CE": -1,
{
"27000CE": -1,
"27100CE": 2,
"27300CE": -1,
"27200CE": 5
}
sortArrayOfObjects = (arr, key) => {
return arr.sort((a, b) => {
return a[key] - b[key];
});
};
如何按值对其进行排序
像上升或下降
{
"27300CE": -1,
"27000CE": -1,
"27100CE": 2,
"27200CE": 5
}
我试过下面的方法
{
"27000CE": -1,
"27100CE": 2,
"27300CE": -1,
"27200CE": 5
}
sortArrayOfObjects = (arr, key) => {
return arr.sort((a, b) => {
return a[key] - b[key];
});
};
但是所有的键都不同,这就是问题所在。我相信您会收到一个对象,在这种情况下,您的输入将如下所示:
let obj = {"27300CE": -1, "27200CE": 5, "27100CE": 2, "27000CE": -1}
您可以按如下值进行排序:
let keys = Object.keys(obj);
// Then sort by using the keys to lookup the values in the original object:
keys.sort(function(a, b) { return obj[a] - obj[b] });
console.log(keys);//["27300CE", "27000CE", "27100CE", "27200CE"]
根据新的键序列,您可以创建一个新的对象,如果您愿意,可以排序一个对象。您可以对进行排序,然后使用创建一个新对象,如下所示:
let obj = {"27300CE": -1, "27200CE": 5, "27100CE": 2, "27000CE": -1}
const响应={
“27100CE”:2,
“27000CE”:-1,
“27300CE”:-1,
“27200CE”:5
}
const sorted=Object.entries(响应)
.sort((a,b)=>a[1]-b[1])
.reduce((r[键,值])=>{
r[键]=值
返回r
}, {})
console.log(排序)
yea这一类型似乎类似于object,,但这就是我收到的API响应这是文本响应吗?比如,API是否发送了这个精确的字符串?如果是这样的话,第一步就是手动将其解析为一个实际的数组/对象。嗨,我编辑了我的问题,请删除下一票,谢谢你嗨,这是唯一的排序键,我需要它的值。是的,你可以用它生成一个新的排序对象,我不知道这是一个大问题