Javascript 尝试对对象中的键进行排序时,结果不正确

Javascript 尝试对对象中的键进行排序时,结果不正确,javascript,node.js,Javascript,Node.js,我尝试按降序对对象进行排序,如下所示: const searchResults={ “很棒”:{ “长度”:5, “发生”:301487430, “等级”:-1 }, “阅读”:{ “长度”:4, “发生”:322331766, “排名”:10 }, “债权人”:{ “长度”:9, “发生”:3211591, “等级”:-1 } } //我尝试的排序方式如下: 让keys=Object.keys(searchResults); 让sortByEM=keys.sort((a,b)=>Number

我尝试按降序对对象进行排序,如下所示:

const searchResults={
“很棒”:{
“长度”:5,
“发生”:301487430,
“等级”:-1
},
“阅读”:{
“长度”:4,
“发生”:322331766,
“排名”:10
},
“债权人”:{
“长度”:9,
“发生”:3211591,
“等级”:-1
}
}
//我尝试的排序方式如下:
让keys=Object.keys(searchResults);
让sortByEM=keys.sort((a,b)=>Number(searchResults[b.rank])-Number(searchResults[a.rank]);

控制台日志(sortByEM)您访问对象时出错


不是
searchResults[b.rank]
而是
searchResults[b]。rank

您访问对象时出错


不是
searchResults[b.rank]
而是
searchResults[b]。rank

您试图以错误的方式访问属性。而不是

searchResults[b.rank]
你在找什么

searchResults[b].rank
您的代码
searchResults[b.rank]
正在尝试访问表达式
b.rank
返回的属性名,该表达式当然是未定义的(因为
b
在这里只是一个
字符串
)<代码>搜索结果。未定义的
ofc也是未定义的,因此排序函数尝试从
未定义的
中减去
未定义的
——本质上这意味着排序函数什么都不做

const searchResults={
“很棒”:{
“长度”:5,
“发生”:301487430,
“等级”:-1
},
“阅读”:{
“长度”:4,
“发生”:322331766,
“排名”:10
},
“债权人”:{
“长度”:9,
“发生”:3211591,
“等级”:-1
}
}
让keys=Object.keys(searchResults);
让sortByEM=keys.sort((a,b)=>(searchResults[b].rank-searchResults[a].rank));

控制台日志(sortByEM)您试图以错误的方式访问属性。而不是

searchResults[b.rank]
你在找什么

searchResults[b].rank
您的代码
searchResults[b.rank]
正在尝试访问表达式
b.rank
返回的属性名,该表达式当然是未定义的(因为
b
在这里只是一个
字符串
)<代码>搜索结果。未定义的
ofc也是未定义的,因此排序函数尝试从
未定义的
中减去
未定义的
——本质上这意味着排序函数什么都不做

const searchResults={
“很棒”:{
“长度”:5,
“发生”:301487430,
“等级”:-1
},
“阅读”:{
“长度”:4,
“发生”:322331766,
“排名”:10
},
“债权人”:{
“长度”:9,
“发生”:3211591,
“等级”:-1
}
}
让keys=Object.keys(searchResults);
让sortByEM=keys.sort((a,b)=>(searchResults[b].rank-searchResults[a].rank));

控制台日志(sortByEM)@connexo我该如何排序?@connexo我该如何排序?