如何在Typescript中按字母顺序对对象数组进行排序。我现在有这种格式的数组 - 我希望通过频道字段按字母顺序排序。
这是我尝试从网上获得的内容。它没有显示任何错误,也没有产生预期的结果。
this.currentPickSelection = this.currentPickSelection.sort((a, b) => {
if (a.channel > b.channel) {
return 1;
}
if (a.channel < b.channel) {
return -1;
}
return 0;
答案 0 :(得分:7)
你有一个多维数组。您的price signal long_position
0.6901 Long 0.6901
0.6861 Close
0.6912 Long 0.6912
0.6898 Long
0.6866 Close
0.6885 Long 0.6885
0.6929 Long
0.6943 Long
0.7084 Long
0.7007 Long
0.7104 Long
0.7104 Long
0.7195 Long
0.7136 Long
0.7225 Long
0.7342 Long
0.7277 Long
0.7318 Long
0.7262 Close
0.7259 Close
0.7280 Long 0.7280
0.7422 Long
0.7369 Long
0.7286 Close
0.7306 Close
0.7415 Long 0.7415
方法应为
array#sort
答案 1 :(得分:-1)
你基本上必须对一组对象进行排序。
将JSON对象更改为对象数组。
[
{
"pickCode":"",
"cbsCode": "",
"channel": "",
"logo": "",
"tag": ""
},
{
"pickCode":"",
"cbsCode": "",
"channel": "",
"logo": "",
"tag": ""
},
{
"pickCode":"",
"cbsCode": "",
"channel": "",
"logo": "",
"tag": ""
}
]
写一个像这样的可重用函数。 (你已经使用了相同的逻辑。我已经添加了toLowerCase()
部分)
private compare(a, b) {
if (a.channel.toLowerCase() < b.channel.toLowerCase()) {
return -1;
}
if (a.channel.toLowerCase() > b.channel.toLowerCase()) {
return 1;
}
return 0;
}
然后,让我们假设arrayOfObjects变量名是channelDetails
,
只需this.channelDetails.sort(this.compare);
即可。