0
所以我知道有一个.sort()方法可以用来在JavaScript中对数组进行排序,但我正在尝试自己构建方法以供练习。我正在努力为一组数字做它。目前,我已经在一个数组中使用了5个数字,但我想让它变成动态的,以便它可以创建一个大小不一的数组。有没有一种方法可以轻松地复制这些代码,以便扩展或需要采用完全不同的方法?JavaScript构建多个临时变量
var myArray = [3,2,4,5,1];
function sort(array) {
var max = 0;
var mid3 = 0;
var mid2 = 0;
var mid1 = 0;
var min = 0;
var sortArr = [];
for (var i = 0; i < array.length; i++) {
if (array[i] > max) {
min = mid1
mid1 = mid2
mid2 = mid3
mid3 = max
max = array[i];
} else if (array[i] > mid3) {
min = mid1
mid1 = mid2
mid2 = mid3
mid3 = array[i];
} else if (array[i] > mid2) {
min = mid1
mid1 = mid2
mid2 = array[i];
} else if (array[i] > mid1) {
min = mid1
mid1 = array[i];
} else {
min = array[i]
}
}
sortArr.push(max, mid3, mid2, mid1, min);
return sortArr
}
console.log(sort(myArray))
我想建立某种变量构造的,将是这样的下面,然后通过在该功能使一些逻辑是抽象的,但不知道这是可能的。然后,您需要一些方法来构建if else语句和要更新的推送方法。我不知道是否有一些简单的解决方案,我错过了任何帮助。
function varConstruct (num) {
for (var i = 0; i < num; i++) {
"mid" + i;
}
}
myArray [“mid”+ i] ??? – Vinz243 2014-11-14 21:09:07
你让太多比较。查看快速排序或合并排序 - 请参阅http://www.sorting-algorithms.com/ – 2014-11-14 21:13:23
如果您想要干净地完成此操作,可能需要查看递归。 – 2014-11-14 21:26:08