我想按Id
对数组进行排序var arr = [{"name":"a", "id":"2"}, {"name":"r", "id":"11"}, {"name":"y", "id":"23"}, {"name":"e", "id":"1"}];
我正在使用以下代码
function compareNum(a,b) {
if (a.id < b.id)
{
return -1;
}
if (a.id > b.id)
{
return 1;
}
return 0;
}
答案排序:1,11,2,23
但我需要:1,2,11,23
答案 0 :(得分:1)
您需要使用parseInt()
将每个id
从字符串转换为整数。
答案 1 :(得分:1)
只需添加一些parseInt()即可:
function compareNum(a, b) {
if (parseInt(a.id) < parseInt(b.id)) {
return -1;
}
if (parseInt(a.id) > parseInt(b.id)) {
return 1;
}
return 0;
}
-
但实际上简化版本也可以使用:
arr.sort(function(a,b) {
return a.id - b.id;
});
答案 2 :(得分:1)
您可以使用预定义 sort()
JavaScript函数:
arr = arr.sort(function(current, next){
return current.id - next.id;
});
在线观看演示:http://jsfiddle.net/5J8kk/3/