JavaScript构建多个临时变量

时间:2014-11-14 21:07:23

标签: javascript arrays

所以我知道有一个.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;
    }
  }

1 个答案:

答案 0 :(得分:0)

也许利用javascript中提供的arguments.length方法。这样,您可以将动态数量的参数传递给您的函数,并且仍然可以访问它们。这里有更好的描述。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments/length

希望有所帮助。