按特定字段对多维数组进行排序

Sorting multidimensional array by specific field

本文关键字:数组 排序 字段      更新时间:2023-09-26

我正在尝试对如下所示的多维数组进行排序:

 var test_array = { "214": { "id": "214", "name": "Mike Smith", "salary": 50000 }, 
"336": { "id": "336", "name": "John Doe", "salary": 60000 }, 
"134": { "id": "134", "name": "Jane Doe", "salary": 100000 }, 
"914": { "id": "914", "name": "Bob White", "salary": 25000 } };

我想按薪水字段降序排序,jQuery 函数在解决方案中是可以接受的。

你不能对数组进行排序,因为实际上它是一个对象而不是数组。

JS对象是名称/值对的无序集合。

如果你想要顺序,使用数组而不是对象,例如

var test_array = [
    { "id": "214", "name": "Mike Smith", "salary": 50000 }, 
    { "id": "336", "name": "John Doe", "salary": 60000 }, 
    { "id": "134", "name": "Jane Doe", "salary": 100000 }, 
    { "id": "914", "name": "Bob White", "salary": 25000 }
];
test_array.sort(function(a,b){
    if(a.salary < b.salary) return -1;
    if(a.salary > b.salary) return 1;
    return 0;
});