js对象数组的排序

发布网友

我来回答

1个回答

热心网友

var arr = [
    ["张", "1:00", "广州"],
    ["小张", "4: 00", "广州"],
    ["王", "7: 00", "北京"],
    ["李", "2: 00", "上海"],
    ["小李", "3: 00", "上海"],
    ["赵", "5: 00", "深圳"]
];
var tmp = "广州,上海,深圳,北京";
arr.sort(function(a, b) {
    var da = new Date("1111/1/1," + a[1].replace(/^\s*|\s*$/g, '') + ":0");
    var db = new Date("1111/1/1," + b[1].replace(/^\s*|\s*$/g, '') + ":0");
    var pa = tmp.indexOf(a[2]),
        pb = tmp.indexOf(b[2]);
    if (pa > pb) {
        return 1;
    } else if (pa < pb) {
        return -1;
    } else {
        if (da > db) {
            return 1;
        } else if (da < db) {
            return -1;
        } else {
            return 0;
        }
    }
});
console.log(arr);

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com