我有一个像这样的数组:
1992 - title
1998 - Title
2002 -Title
等。
如何根据年份降序对此数组进行排序?
所以它看起来像:
2002 - Title
1998 -Title
1002 - Title
我尝试排序和反向,但这根本不起作用,数组几乎没有排序,我该如何对这个数组进行排序?
我也尝试将这个二维数组作为Year作为数字,标题作为字符串按数字排序,但这不起作用,我无法解决这个问题
请求帮助
答案 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);
如果您的数组实际上非常大,您可能想要查看使用我链接到的文档中描述的排序映射的想法。