繁体   English   中英

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

[英]In an array of strings how to sort the array on part of the strings

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

使用带有函数的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;
});

是的,您可以将函数传递给array.sort,根据您感兴趣的条件比较两个字符串。请参阅如何在javascript中对数组进行排序?

你必须小心字符串与数字: '1_12' < '1_2'True ,例如。 如果您需要将它们作为数字进行比较,您可以拆分字符串,对每个部分执行parseInt,并实现成对比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM