Так что я знаю, что существует метод .sort(), который можно использовать для сортировки массивов в JavaScript, но я пытаюсь сам построить метод для практики. Я пытаюсь сделать это только для массива чисел. На данный момент я работаю с 5 номерами в массиве, но я хотел бы, чтобы он был динамическим, чтобы он мог создавать массив anysize. Есть ли способ легко воспроизвести этот код, чтобы он масштабировался или мне нужно было использовать совершенно другой подход?JavaScript Building Multiple Temporary Variables
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;
}
}
myArray ["mid" + i] ??? – Vinz243
Вы делаете слишком много сравнений. Посмотрите на сортировку быстрого сортировки или слияния - см. Http://www.sorting-algorithms.com/ –
Возможно, вы захотите посмотреть рекурсию, если хотите сделать это чисто. –