Javascript数组按年字符串排序

时间:2014-08-09 19:59:22

标签: sorting

我有一个像这样的数组:

1992 - title
1998 - Title
2002 -Title

等。

如何根据年份降序对此数组进行排序?

所以它看起来像:

2002 - Title
1998 -Title
1002 - Title

我尝试排序和反向,但这根本不起作用,数组几乎没有排序,我该如何对这个数组进行排序?

我也尝试将这个二维数组作为Year作为数字,标题作为字符串按数字排序,但这不起作用,我无法解决这个问题

请求帮助

2 个答案:

答案 0 :(得分:0)

看看它是否有效:

var arr = [
                    [1992, "Title 1992"],
                    [1998, "Title 1998"],
                    [1970, "Title 1970"],
                    [2002, "Title 2002"]
        ];

arr.sort(function (a, b) { return (a[1] < b[1] ? -1 : (a[1] > b[1] ? 1 : 0)); });
console.log(arr.join());
console.log(arr.reverse().join());

答案 1 :(得分:0)

您可以在排序方法中使用比较器:Array.prototype.sort()

通过明智地选择比较,您可以按前四个字符的相反顺序对数组进行排序:

function dateComparer(a, b) {
    return a.substring(0, 4) < b.substring(0, 4);
}

var a = ["1992 - title", "1998 - Title", "2002 -Title"];

a.sort(dateComparer);

如果您的数组实际上非常大,您可能想要查看使用我链接到的文档中描述的排序映射的想法。