所以我知道有一个.sort()方法可用于在JavaScript中对数组进行排序,但我正在尝试自己构建该方法仅用于练习。我试图为一组数字做这件事。目前,我让它在数组中为5个数字工作,但我想让它变得动态,以便它可以创建一个anysize数组。有没有办法轻松复制这些代码,以便它可以扩展,或者我需要采用一种完全不同的方法?
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语句和要更新的push方法。我不确定是否有一些我想念的简单解决方案,所以任何帮助都表示赞赏。
function varConstruct (num) {
for (var i = 0; i < num; i++) {
"mid" + i;
}
}
答案 0 :(得分:0)
也许利用javascript中提供的arguments.length方法。这样,您可以将动态数量的参数传递给您的函数,并且仍然可以访问它们。这里有更好的描述。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/length
希望有所帮助。