我开始为此编写一个冒泡排序,当时我想也许有一种方法可以使用array.sort()来完成这项工作吗?
这是一个(希望)明确我要排序的例子:(文件名列表)
var array = ['impression_page_1_12_juin','impression_page_1_13_juin','impression_page_2_12_juin','impression_page_2_13_juin']
正如您所看到的,在2个不同日期有2个'page1',每个字符串中只有字符19和20不同。我想对这2个字符进行排序。
Javascript可以直截了当地执行,还是应该返回到我的子串和冒泡排序方法?
答案 0 :(得分:12)
将sort
方法与函数一起使用进行比较:
array.sort(function(x,y){
var xp = x.substr(18, 2);
var yp = y.substr(18, 2);
return xp == yp ? 0 : xp < yp ? -1 : 1;
});
答案 1 :(得分:1)
是的,您可以将函数传递给array.sort,根据您感兴趣的条件比较两个字符串。请参阅How to sort array in javascript?
您必须小心使用字符串与数字:'1_12' < '1_2'
例如True
。如果您需要将它们作为数字进行比较,您可以拆分字符串,对每个部分执行parseInt,并实现成对比较。