Javascript 为什么这个示例要遍历数组进行排序,而不是使用.sort()方法?
我将在w3上介绍一些基本的阵列挑战 以下是给出的任务: 编写一个JavaScript程序对数组中的项进行排序 样本数组:var arr1=[3,8,7,6,5,-4,3,2,1]; 样本输出:-4、-3,1,2,3,5,6,7,8 以下是他们给出的解决方案:Javascript 为什么这个示例要遍历数组进行排序,而不是使用.sort()方法?,javascript,arrays,Javascript,Arrays,我将在w3上介绍一些基本的阵列挑战 以下是给出的任务: 编写一个JavaScript程序对数组中的项进行排序 样本数组:var arr1=[3,8,7,6,5,-4,3,2,1]; 样本输出:-4、-3,1,2,3,5,6,7,8 以下是他们给出的解决方案: var arr1=[-3,8,7,6,5,-4,3,2,1]; var arr2=[]; var min=arr1[0]; var pos; max=arr1[0]; for (i=0; i<arr1.le
var arr1=[-3,8,7,6,5,-4,3,2,1];
var arr2=[];
var min=arr1[0];
var pos;
max=arr1[0];
for (i=0; i<arr1.length; i++)
{
if (max<arr1[i]) max=arr1[i];
}
for (var i=0;i<arr1.length;i++)
{
for (var j=0;j<arr1.length;j++)
{
if (arr1[j]!="x")
{
if (min>arr1[j])
{
min=arr1[j];
pos=j;
}
}
}
arr2[i]=min;
arr1[pos]="x";
min=max;
}
alert(arr2);
为什么我觉得他们的解决方案更“复杂”?是否有必要添加他们的解决方案以针对特定用例进行保护 要对数组进行排序,请始终使用内置函数,而不是编写自己的函数。它消除了无用调试的痛苦,事实上,重新发明了轮子
.sort()
绝对可以
此外,不仅长解是“卷积的”,而且是O(n^2)
而不是本机排序
它用
'x'
值做了一些奇怪的事情,用=
代替==
,所以它看起来一点也不好。是的。我想我已经对他们的“解决方案”失去了信任。关于更好的代码挑战/演练的任何建议。除了编写自己的程序(我正在编写)?@这里可能有人,正如charlietflm所提到的,重点是学习如何自己编写一个简单的排序,但它不会消除任何其他问题。据我所知,codescool.com有很好的教程。不过,我觉得这应该包括在他们的目标中。我可以编写工作代码并理解for循环等。目前,我正在努力编写更干净/可维护的代码。不,但是知道如何在不使用本机方法的情况下将您的头脑集中在如何完成这项工作上是否很好?也许这就是为什么要这样做
var arr1 = [ -3, 8, 7, 6, 5, -4, 3, 2, 1 ];
arr1.sort(function(a, b){return a-b});
console.log(arr1);