我尝试过在SO和其他地方阅读,但只能找到单级对象,并且无法使其适用于多级对象。 ie:return tableData按值降序排序。
我在调试和控制台视图中附加了以下对象:
这是实际的对象:
"[{"name":"Sepitomo",
"years":[
{
"year":"Italy",
"value":25.79
},
{
"year":"Spain",
"value":30.68
},
{
"year":"France",
"value":18.31
},
{
"year":"Poland",
"value":9.45
},
{
"year":"Portugal",
"value":6.72
},
{
"year":"Switzerland",
"value":4.05
},
{
"year":"Romania",
"value":3.95
},
{
"year":"[Cash]",
"value":3.2
},
{
"year":"Belgium",
"value":3.18
},
{
"year":"United Kingdom",
"value":2.94
},
{
"year":"Ireland",
"value":2.01
},
{
"year":"Germany",
"value":0.98
}
]
},
{
"name":"Benchmark",
"years":[
{
"year":"Italy"
},
{
"year":"Spain"
},
{
"year":"France"
},
{
"year":"Poland"
},
{
"year":"Portugal"
},
{
"year":"Switzerland"
},
{
"year":"Romania"
},
{
"year":"[Cash]"
},
{
"year":"Belgium"
},
{
"year":"United Kingdom"
},
{
"year":"Ireland"
},
{
"year":"Germany"
}
]
}
]"
我需要返回在值上排序的tableData对象,并返回其他对象,因为它们在同一个结构中(还返回其他未排序的部分)。
我尝试了sorting-object-properties-based-on-value,sorting-javascript-object-by-property-value 3等
答案 0 :(得分:0)
首先设置比较然后排序如下,然后分配给原始对象
let temp2 = tableData[0].years;
function compareValues(a, b) {
if (a.value > b.value)
return -1;
if (a.value < b.value)
return 1;
return 0;
}
tableData[0].years = temp2.sort(compareValues);