У меня есть массив, который имеет следующие значенияКак отсортировать массив на основе значений другого массива?
Nata_sha_AD8_02_ABA
Jack_DD2_03_K
Alex_AD8_01_PO
Mary_CD3_03_DC
John_DD2_01_ER
Daniel_AD8_04_WS
Я хочу, чтобы сгруппировать их на основе следующих массива [ 'AD8', 'CD3', 'DD2', 'PD0']; и сортировать каждую группу на основе количества каждого значения. Таким образом, выход должен быть
Alex_AD8_01_PO
Nata_sha_AD8_02_ABA
Daniel_AD8_04_WS
Mary_CD3_03_DC
John_DD2_01_ER
Jack_DD2_03_K
До сих пор, я написал следующий код, но он не работает должным образом, и я застрял здесь.
var temparr = [];
var order = 1000;
var pos = -1;
var temp = -1;
var filterArray= ['AD8','CD3','DD2','PD0'];
for (i =0; i< filterArray.length; i++) {
for (j =0; j < myarray.length; j++) {
if(filterArray[i].toUpperCase().search(myarray[j])>0){
temp = str.substring(myarray[j].indexOf(filterArray[i])+4, myarray[j].indexOf(filterArray[i]+6);
if(temp < order){
pos = j;
order = temp;
}
if(j == myarray.length-1){ //reached end of the loop
temparr.push(myarray[pos]);
order = 1000;
}
}
}
}
Является ли, что сортировка массива 'filterArray' себя намеренно в алфавитном порядке, или это просто совпадение? – Alnitak
@Alnitak этот массив ['AD8', 'CD3', 'DD2', 'PD0'] намеренно отсортирован. – Jack
@Jack и суффиксы всегда в формате '_XXN_NN'? – Alnitak