2016-08-27 2 views
1

У меня есть набор строк в массиве, и чистым javascript я пытаюсь их сортировать и распечатывать. Я получаю пустой массив. Кто-нибудь может мне помочь?Сортировка массива слов по чистому JavaScript

<script> 
(function(){ 
    var a = ["AB", "SU", "MN", "AC", "QA", "DZ", "CM", "EP"]; 
    var b = []; 
    for(i=0;i<a.length;i++){ 
     var temp = a[i].split('')[0]; 
     for(j=0;j<b.length;j++){ 
      if (temp < b[j].split('')[0]){ 
       b[j] = push(a[i]); 
      } 
     } 
    } 
    console.log(b); 
})(); 
</script> 

Также мне нужно принять во внимание СРАВНЕНИЕ второго, третьего, четвертого символов, если они существуют, но я обречен даже в кулак сравнения буквы в строке. Pls, возьмите это и в расчет.

+2

Используйте [ ' Array.prototype.sort'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort). – Barmar

+0

ухаживать за скрипкой сэр? – Deadpool

+0

Я не знаю, почему вы раскалываете струны. Вы можете сравнить строку с помощью только 'a [i] Barmar

ответ

2

Все, что вам нужно, это просто вызов

a.sort()

PS: вроде собирается обновить массив (не только возвращает копию массива отсортированный)

3

Здесь вы идете. EDIT Рассмотрите комментарии, я был не так. Теперь все отлично.

var a = ["AB", "SU", "MN", "AC", "QA", "DZ", "CM", "EP"]; 
var b = a.sort(); 
//also can use reverse here. 
console.log(b); 

А вот jsbin

https://jsbin.com/xikamitole/1/edit?html,js,console

Надеется, что это помогает.

+0

и что я называю - GG !!! – Deadpool

+0

Как, черт возьми, кто-то проголосует за этот ответ. Не знаю !!! ; -/ – Deadpool

+0

Обратный вызов здесь неверен. Обратный вызов, переданный в '.sort()', должен возвращать отрицательное число, если первый параметр должен сортировать до второго, 0, если они имеют одинаковый порядок сортировки, и 1, если второй должен сортировать до первого. – Pointy

Смежные вопросы