尝试解决这个问题,但确实不确定
我有一个JSON对象,其中包含多个项目,如下所示
DATA_TABLE = [{"rownum": 0, "Surname": "Doe", "Firstname": "John", "Dob": "1 Jan 1980"}...]
我想通过DOB然后Surname然后firstname对数据进行排序,以获得相同的结果,例如sql语句
ORDER BY Dob, Surname, Firstname
答案 0 :(得分:1)
您可以使用以下代码:
DATA_TABLE.sort(function(a, b) {
return new Date(a.Dob) - new Date(b.Dob)
|| ((a.Surname < b.Surname ) ? -1 : (a.Surname > b.Surname ) ? 1 : 0)
|| ((a.Firstname < b.Firstname) ? -1 : (a.Firstname > b.Firstname) ? 1 : 0) ;
});
答案 1 :(得分:0)
您可以使用Alasql库:
var DATA_TABLE = [{"rownum": 0, "Surname": "Doe", "Firstname": "John", "Dob": "1 Jan 1980"},
{"rownum": 1, "Surname": "America", "Firstname": "Captain", "Dob": "1 Jan 1940"},];
var res = alasql('SELECT *, DATE(Dob) AS d FROM ? ORDER BY d, Surname, Firstname',[DATA_TABLE]);
试试这个例子in jsFiddle。
由于原始Dob列具有字符串类型,因此我将包含附加列“d”以进行正确排序。