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”]。谢谢:)这对我来说似乎是更好的答案。无需实现自己的排序算法。