javascript中的2级排序数组

javascript中的2级排序数组,javascript,jquery,Javascript,Jquery,我有这个数组: 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”] 我想用值进行排序,在平铺之前是,然后在平铺之后是,我在互联网上发现了一些解决方案,但它不起作用 var temp_arr = ["4~3", "4~6", "4~1", "4~8", "2~7", "2~0", "2~4", "7~5", "7~9", "7~7", "0~

我有这个数组:
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”]

我想用值进行排序,在平铺之前是,然后在平铺之后是

我在互联网上发现了一些解决方案,但它不起作用

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

您可以使用以下代码:

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"];

for(var i = 0; i < temp_arr.length; i++)
{
    for(var it = 0; it < temp_arr.length-1; it++)
    {
        var it1 = temp_arr[it];
        var it2 = temp_arr[it+1];
        var right1 = Number(it1.split('~')[1]);
        var right2 = Number(it2.split('~')[1]);
        var left1 = Number(it1.split('~')[0]);
        var left2 = Number(it2.split('~')[0]);
        if(left1 > left2 || (right1 > right2 && left1 == left2))
        {
            var temp = temp_arr[it];
            temp_arr[it] = temp_arr[it+1];
            temp_arr[it+1] = temp;
        }
    }
}
console.log(temp_arr);
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”];
对于(变量i=0;ileft2 | |(right1>right2&&left1==left2))
{
var temp=温度(即温度);
temp_arr[it]=temp_arr[it+1];
温度arr[it+1]=温度;
}
}
}
控制台日志(临时arr);
它使用的是气泡排序的修改版本


编辑:使其略短一点

如果您想使用您的想法获得一段较短的代码,您可以使用

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){
   var t = Number(a.split('~')[0]) - Number(b.split('~')[0]);
   if (t == 0)
       return Number(a.split('~')[1]) - Number(b.split('~')[1]);
   else 
       return t;
});

console.log(temp_arr);
希望能有帮助
Dan

它已在运行代码。它的输出如下<代码>“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”
我得到的输出如下。DanielRosano lol.@DanielRosano lol.[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~9”,“7~5”]。谢谢:)这对我来说似乎是更好的答案。无需实现自己的排序算法。