In an array of strings how to sort the array on part of the strings

google-apps-script, javascript

Solution

Use the `sort` method with a function for the comparison:

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;
});

Problem

I was beginning to write a bubble sort for this when I thought maybe there is a way to use a function with array.sort() that does the job ? Here is a (hopefully) clear example of what I have to sort : (file names list) ``` var array = ['impression_page_1_12_juin','impression_page_1_13_juin','impression_page_2_12_juin','impression_page_2_13_juin'] ``` As you can see there are 2 'page1' on 2 different dates, only characters 19 and 20 in each string are different. I'd like to sort on those 2 characters. Can Javascript do that straightforward or should I return to my substrings and bubble sort method ?

Original source

Related problems