这是我的Arrya ......
["20140615-http://localhost:8080/PROYECTO/upload/ORBTHZK/image_ORBTHZK.gif", "20140617-http://localhost:8080/PROYECTO/upload/ORBITHCITY/image_ORBITHCITY.png", "20140601-http://localhost:8080/PROYECTO/upload/423445/image_423445.gif"]
我需要这个......
["20140601-http://localhost:8080/PROYECTO/upload/423445/image_423445.gif", "20140615-http://localhost:8080/PROYECTO/upload/ORBTHZK/image_ORBTHZK.gif", "20140617-http://localhost:8080/PROYECTO/upload/ORBITHCITY/image_ORBITHCITY.png"]
答案 0 :(得分:1)
奇怪的是,在数组上调用sort()
的工作正常。这是我在节点控制台中所做的一个副本:
var arr = ["20140615-http://localhost:8080/PROYECTO/upload/ORBTHZK/image_ORBTHZK.gif", "20140617-http://localhost:8080/PROYECTO/upload/ORBITHCITY/image_ORBITHCITY.png", "20140601-http://localhost:8080/PROYECTO/upload/423445/image_423445.gif"];
arr.sort()
[ '20140601-http://localhost:8080/PROYECTO/upload/423445/image_423445.gif',
'20140615-http://localhost:8080/PROYECTO/upload/ORBTHZK/image_ORBTHZK.gif',
'20140617-http://localhost:8080/PROYECTO/upload/ORBITHCITY/image_ORBITHCITY.png' ]
根据您的环境可能会有所不同,但Node和所有主流浏览器都支持它。因此,如果您要定位一些旧/边缘案例浏览器YMMV。
答案 1 :(得分:1)
试试这个:
function sortArr(arr, f, isNum) {
var l = arr.length,
data = new Array(l);
for(var i=0; i<l; ++i)
data[i] = [f(arr[i]), arr[i]];
data.sort(isNum
? function(a,b){ return a[0]-b[0]; }
: function(a,b){ return a[0]<b[0] ? -1 : a[0]>b[0] ? 1 : 0; }
);
for(var i=0; i<l; ++i) arr[i] = data[i][1];
}
var arr = ["20140615-http://localhost:8080/PROYECTO/upload/ORBTHZK/image_ORBTHZK.gif", "20140617-http://localhost:8080/PROYECTO/upload/ORBITHCITY/image_ORBITHCITY.png", "20140601-http://localhost:8080/PROYECTO/upload/423445/image_423445.gif"];
sortArr(arr, function(str){ return str.split('-')[0]; }, true);
答案 2 :(得分:0)