use*_*gBy 19 javascript arrays sorting json
我在http://www.devcurry.com/2010/05/sorting-json-array.html上找到了如何对JSON数组进行排序的方法
现在我想以通用的方式对它进行排序; 这样我的排序函数就知道要排序的属性.
例如,如果我的数组是
[
{
"name": "John",
"age": "16"
},
{
"name": "Charles",
"age": "26"
}
]
Run Code Online (Sandbox Code Playgroud)
我想避免写一些不同的案例,以便知道我是否应按姓名或年龄排序.我只想传递参数'name'或'age',我的排序功能应该知道该怎么做.
谢谢.
Eng*_*eer 79
像这样的东西:
function predicateBy(prop){
return function(a,b){
if (a[prop] > b[prop]){
return 1;
} else if(a[prop] < b[prop]){
return -1;
}
return 0;
}
}
//Usage
yourArray.sort( predicateBy("age") );
yourArray.sort( predicateBy("name") );
Run Code Online (Sandbox Code Playgroud)
您可以使用Alasql库按任何字段对数组进行排序:
var data = [{"name":"John", "age":"16"}, {"name":"Charles", "age":"26"}];
var res1 = alasql('SELECT * FROM ? ORDER BY name',[data]);
var res2 = alasql('SELECT * FROM ? ORDER BY age',[data]);
var res3 = alasql('SELECT * FROM ? ORDER BY age, name',[data]);
var res4 = alasql('SELECT * FROM ? ORDER BY age DESC, name ASC',[data]);
Run Code Online (Sandbox Code Playgroud)
在 jsFiddle 中试试这个例子。
归档时间: |
|
查看次数: |
41281 次 |
最近记录: |