Как мне отсортировать массив в JavaScript?

#javascript

#javascript

Вопрос:

В массиве T у нас есть значения [b,a,d,c] . Как изменить порядок этого массива в одном цикле в aim, чтобы получить [a,b,c,d] ?

Комментарии:

1. [] это массив, {} скорее обозначающий объект.

2. поиск в SO с использованием «javascript array sort» выдает 3,067 результатов. Разве эти результаты не появлялись при вводе вашего вопроса?

3. Kooilnc: Может быть, он спрашивает об алгоритме сортировки O (n), а не о встроенной функции для этого? По крайней мере, такое ощущение у меня возникает, когда я читаю вопрос

4. @Soufiane Hassou: оказывается, его вопрос имел в виду что-то совсем другое, насколько я понимаю.

Ответ №1:

вы можете использовать .sort() метод, подобный:

 var T = new Array('a', 'd', 'c', 'b');
T.sort();
  

Я не совсем понимаю, что вы подразумеваете под «переупорядочением» (возможно, сортировка в каком-то случайном порядке 🙂

однако вы всегда можете использовать for , например:

 // create new array
var U = new Array();
for (i=0; i<T.length; i  ) {

    // some desired condition
    if (T[i] <= 1) {
        // put the value ( T[i] ) on the desired position
        desired_position = ???
        U[desired_position] = T[i];
    }
    else {
        // otherwise put it at the end of the array
        U.push(T[i]);
    }
}

// and here you have the "reordered" array 
alert('the array U is reordered !!');
  

Комментарии:

1. Спасибо.. но я не прошу сортировки.. я просто хочу изменить порядок элементов, например: {e, t, m, a} на {t, e, a, m}

2. @suba: чем я предлагаю вам изменить свой вопрос на: Как мне отсортировать массив в определенном предопределенном порядке [в Javascript]? (и объединить это с te, который позже задал тот же вопрос SO)

3. @suba какими должны быть критерии упорядочения? Как функция должна упорядочивать массив, если он выглядит следующим образом ['h','e','l','l','o'];

4. @suba: Если вы спрашиваете не о сортировке, что означает ваш вопрос? Кстати, функция sort() принимает в качестве параметра ссылку на функцию, которая обрабатывает сравнение между двумя элементами массива, поэтому вы можете реализовать любой порядок, который вы можете представить алгоритмически: javascriptkit.com/javatutors/arraysort.shtml