【发布时间】:2014-04-06 19:33:25
【问题描述】:
function newsort(arr, left, right){
for(var i= left; i < right; ++i){
var min = i;
for (var j = i; j < right; ++j){
if (arr[min] > arr[j]){
min = j;
}
}
var temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
return arr;
}
var arr = [3,5,66,78,23,44,11,32,58];
alert(newsort(arr, arr.length, 0));
上面是我写的一个函数的代码。我对 JS 还是很陌生,因此在语法方面有时会感到困惑。我目前只是返回原始数组,但我正在尝试进行选择排序,右/左/中类型.....我现在无法判断发生了什么。我只是想排序然后返回数组。
有谁能给我指出正确的方向吗?
谢谢.....
【问题讨论】:
-
从外观上看,盯着屏幕太久的经典案例,该功能有效 - 您只是以错误的顺序传递了
left和right参数。 -
数组有一个排序方法
[3,1,2].sort(),并通过将其作为参数传递MDN sort doc来使用自定义排序函数@ -
我不明白您要做什么,但是如果您想对数组进行排序,为什么不使用 sort() 方法? arr.sort(function(a,b){return a-b}) 将对数组进行排序。检查w3schools.com/jsref/jsref_sort.asp
-
@PatrickEvans 可能是出于教育目的
-
@aduch,这就是为什么我没有说他应该使用它:)。既然他说他是 js 新手,就让他知道有一种排序方法和一种使用自定义排序方法的方法。
标签: javascript arrays sorting