У меня есть этот массив:
var temp_arr = ["4~3", "4~6", "4~1", "4~8", "2~7", "2~0", "2~4", "7~5", "7~9", "7~7", "0~2", "0~0", "4~4", "4~5", "4~7"];
сортировать массив на 2 уровне в JavaScript
И я хочу сортировки, используя значение, которое перед темtild, а затем со значением, которое является после в tild.
Я нашел несколько решений в Интернете, но не работал.
var temp_arr = ["4~3", "4~6", "4~1", "4~8", "2~7", "2~0", "2~4", "7~5", "7~9", "7~7", "0~2", "0~0", "4~4", "4~5", "4~7"];
temp_arr.sort(function(a,b){
return Number(a.split('~')[0]) - Number(b.split('~')[0]);
});
temp_arr.sort(function(a,b){
var a_ = Number(a.split('~')[1]);
var b_ = Number(b.split('~')[1]);
var a2 = Number(a.split('~')[0]);
var b2 = Number(b.split('~')[0]);
if(a2 != b2)
{
return 0;
}
else if(a_ != b_)
{
return a_ > b_;
}
});
console.log(temp_arr);
уже рабочий код. это результат следующим образом. '' 0 ~ 0 "," 0 ~ 2 "," 2 ~ 0 "," 2 ~ 4 "," 2 ~ 7 "," 4 ~ 1 "," 4 ~ 3 "," 4 ~ 4 " "4 ~ 5", "4 ~ 6", "4 ~ 7", "4 ~ 8", "7 ~ 5", "7 ~ 7", "7 ~ 9" ' –
Не работает как? – artm
Я получаю вывод следующим образом. ["4 ~ 6", "0 ~ 2", "2 ~ 7", "2 ~ 0", "2 ~ 4", "4 ~ 3", "4 ~ 8" 7: "0 ~ 0" "4 ~ 5", "4 ~ 4", "4 ~ 7", "4 ~ 1", "7 ~ 7", "7 ~ 9", "7 ~ 5"] –