【发布时间】:2015-02-17 11:20:05
【问题描述】:
我有一个对象数组:
var arr = [
{title:'50 - 50'},
{title:'100 - 100'},
{title:'50 - 65'},
{title:'100 - 125'}
];
我正在尝试对该数组进行排序,以便项目按以下顺序显示:
var arr = [
{title:'50 - 50'},
{title:'50 - 65'},
{title:'100 - 100'},
{title:'100 - 125'}
];
目前我正在使用以下排序功能来尝试这样做:
arr.sort(function(a, b){
var titleA = a.title;
var titleB = b.title;
var arrA = titleA.split(' - ');
var arrB = titleB.split(' - ');
var keyA = parseInt(arrA[0]),
keyB = parseInt(arrB[0]);
// Compare the 2 keys
if(keyA < keyB) return -1;
if(keyA > keyB) return 1;
return 0;
});
但是,这会按以下顺序返回项目:
var arr = [
{title:'50 - 65'},
{title:'50 - 50'},
{title:'100 - 125'},
{title:'100 - 100'}
];
看来我需要先按标题中的第一个数字排序,然后再按第二个数字排序。有什么想法吗?
【问题讨论】:
-
在共享代码时使用代码示例而不是代码 sn-p。运行时使用代码 sn-p。
-
您仅对第一个数字进行排序。当
keyA == keyB时为第二个数字添加另一个标准。
标签: javascript arrays sorting