I am faced with the task of merging and sorting two arrays containing string data:
var AA = ["~/80/Blue/1.png","~/80/Blue/2.png","~/80/Black/1.png","~/80/Black/2.png"];
var BB = ["~/81/Blue/1.png","~/81/Blue/2.png","~/81/Black/1.png","~/81/Black/2.png"];
To achieve this, I need to concatenate these arrays and sort them in a specific way:
CC = ["~/80/Blue/1.png","~/81/Blue/1.png","~/80/Blue/2.png","~/81/Blue/2.png","~/80/Black/1.png","~/81/Black/1.png","~/80/Black/2.png","~/81/Black/2.png"];
The sorting criteria require pairs of array elements to have the same "color directory" and file name.
This is my attempted solution:
var CC = AA.concat(BB);
CC.sort (function(a,b) {
var Mask = /\W\w+\W\d\Wpng/;
var A =[];
var B = [];
var s1 = a.toLowerCase();
var s2 = b.toLowerCase();
for (var i=0; i<s1.length; i++){
A.push(s1[i].match(Mask));
}
for (var i=0; i<s2.length; i++){
B.push(s2[i].match(Mask));
}
for (var i=0; i<A.length; i++){
for (var j=0; j<B.length; j++){
if (A[i] < B[j]) {return -1;};
if (A[i] > B[j]) {return 1;};
else {return 0;}
}
}