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

Javascript 按特定字段对多维数组排序,javascript,jquery,Javascript,Jquery,我尝试对多维数组进行排序,如下所示: 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",

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

 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;
});
var测试\u数组=[
{“id”:“214”,“姓名”:“迈克·史密斯”,“薪水”:50000},
{“id”:“336”,“姓名”:“John Doe”,“薪水”:60000},
{“id”:“134”,“姓名”:“Jane Doe”,“薪水”:100000},
{“id”:“914”,“姓名”:“Bob White”,“薪水”:25000}
];
测试数组排序(函数(a,b){
如果(a.salaryb.薪资)返回1;
返回0;
});

感谢您发布您的要求。现在请发布您的尝试…旁注:它不是@Benjamin Gruenbaum:OP的数组可能的副本没有数组+1@Benjamin格伦鲍姆:我没有任何疑问。这使得这个问题是不完整的,不是不正确的。@zerkms它不是不完整的。OP把术语弄错了。他想要完成什么是非常清楚的。他需要基于薪水的id/name/salary对象。顺便说一句,Oriol刚刚编辑了这个答案。我已经取消了我的反对票。