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我该如何排序?