在字符串数组中,如何在字符串的一部分上对数组进行排序

时间:2012-06-13 14:15:08

标签: javascript google-apps-script

我开始为此编写一个冒泡排序,当时我想也许有一种方法可以使用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可以直截了当地执行,还是应该返回到我的子串和冒泡排序方法?

2 个答案:

答案 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,并实现成对比较。