Javascript 如何对两个数组进行排序?
请帮助我将2个数组asc排序和desc排序。我的解决方案没有奏效Javascript 如何对两个数组进行排序?,javascript,Javascript,请帮助我将2个数组asc排序和desc排序。我的解决方案没有奏效 function solve(arr){ var descArr = []; var ascArr = []; ascArr = arr.sort(function(a, b) { return a - b; }); descArr = arr.sort(function(a, b) { return b - a; }); console.log(descArr); conso
function solve(arr){
var descArr = [];
var ascArr = [];
ascArr = arr.sort(function(a, b) {
return a - b;
});
descArr = arr.sort(function(a, b) {
return b - a;
});
console.log(descArr);
console.log(ascArr);
};
solve([15,11,10,7,12])
Console.log显示类似的排序数组
若要获取
descArr
,请切片以获取数组的浅层副本,然后进行排序。切片descArr
和数组#反转以获得ascArr
您需要使用Array#slice来获得浅层克隆,因为Array#sort和Array#reverse都已就位,这意味着它们会对原始数组进行变异
函数求解(arr){
var descArr=arr.slice().sort(函数(a,b){
返回a-b;
});
var ascArr=descArr.slice().reverse();
控制台日志(descArr);
控制台日志(ascArr);
};
solve([15,11,10,7,12])
sort返回排序后的原始数组,这样您就有了对同一数组的所有引用。您可以使用slice创建一个副本,然后进行排序。sort方法会改变您调用它的数组,这就是它们相同的原因。如果在第二次排序之前记录数组,您将看到所需的结果。排序变异原始数组,您必须对原始数组进行切片以创建副本,然后执行变异。`var arr=[15,11,10,7,12];设sortA=arr.slice().sort((a,b)=>a-b);让sortB=arr.slice().sort((a,b)=>b-a);控制台日志(sortA);console.log(sortB)`