2015-02-05 4 views
-1

У меня возникла проблема сортировки буквенно-цифровой матрицы.Как отсортировать буквенно-цифровой массив в javascript

номер своего рода модель приходит сначала тогда письмо

09312d27-4ddc-458e-95dd-74531f787368, 
1edcdde8-702e-4703-a505-ca81b77accdd, 
..... 

Код:

var alphaNumericArray = ['8a337e46-7d3f-46bc-b661-579f8d25fe09', 
'09312d27-4ddc-458e-95dd-74531f787368', 
'e7c5fba1-ce59-439a-a560-8f558e7c0ac4', 
'1edcdde8-702e-4703-a505-ca81b77accdd', 
'2f66ba6c-7fd2-4d52-8ed6-b0ee6d4d0310', 
'7529217d-ee80-41eb-ade7-208674924ab9', 
'523f4f75-8d0a-4ad1-8f40-e8bc679956be', 
'80871291-c8de-47d9-9b02-3f8444c5d64e', 
'7529217d-ee80-41eb-ade7-208674924ab9']; 

alphaNumericArray.sort(function(a, b) { 
    a = a.value; 
    b = b.value; 
    return a-b; 
}); 

//console.log(alphaNumericArray); 
//alert(alphaNumericArray); 

Выход не отсортирован. Он показывает мне тот же массив в всплывающем окне предупреждения и в журнале консоли.

+7

Сортировка в JavaScript является строковым сравнение сортировки по умолчанию. Вы не можете вычитать одну строку из другой, поэтому ваша функция компаратора не работает. – Pointy

+0

Также это не имеет никакого отношения к jQuery. – Pointy

+1

'[...] jQuery - популярная кросс-браузерная библиотека JavaScript, которая облегчает обход DOM (HTML Structure), обработку событий, анимацию и взаимодействия AJAX [...]. Ваш вопрос вообще не связан с jQuery. Но ванильный javascript. –

ответ

2

var alphaNumericArray = [ 
 
    '8a337e46-7d3f-46bc-b661-579f8d25fe09', 
 
    '09312d27-4ddc-458e-95dd-74531f787368', 
 
    'e7c5fba1-ce59-439a-a560-8f558e7c0ac4', 
 
    '1edcdde8-702e-4703-a505-ca81b77accdd', 
 
    '2f66ba6c-7fd2-4d52-8ed6-b0ee6d4d0310', 
 
    '7529217d-ee80-41eb-ade7-208674924ab9', 
 
    '523f4f75-8d0a-4ad1-8f40-e8bc679956be', 
 
    '80871291-c8de-47d9-9b02-3f8444c5d64e', 
 
    '7529217d-ee80-41eb-ade7-208674924ab9' 
 
]; 
 

 
alphaNumericArray.sort(); 
 

 
document.getElementById('out').textContent = JSON.stringify(alphaNumericArray, null, 2);
<pre id="out"></pre>

результат:

[ 
    "09312d27-4ddc-458e-95dd-74531f787368", 
    "1edcdde8-702e-4703-a505-ca81b77accdd", 
    "2f66ba6c-7fd2-4d52-8ed6-b0ee6d4d0310", 
    "523f4f75-8d0a-4ad1-8f40-e8bc679956be", 
    "7529217d-ee80-41eb-ade7-208674924ab9", 
    "7529217d-ee80-41eb-ade7-208674924ab9", 
    "80871291-c8de-47d9-9b02-3f8444c5d64e", 
    "8a337e46-7d3f-46bc-b661-579f8d25fe09", 
    "e7c5fba1-ce59-439a-a560-8f558e7c0ac4" 
] 

читать далее здесь https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

+1

Это правильное решение, но, пожалуйста, также объясните, почему он работает (и попытка OP не сделана) – Bergi

+0

, пожалуйста, прочтите здесь http://www.w3schools.com/jsref/jsref_sort.asp –

+1

лучше не использовать [MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) в качестве ссылки. Однако я предлагаю вам [изменить] ваш ответ, чтобы включить объяснение :-) – Bergi

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

  • Нет связанных вопросов^_^