2014-10-11 12 views
-2

У меня есть массив, и когда я console.log это он дал мне это:массива сортировать по его значению в JavaScript

[paris: 348589.40826358093, londres: 490078.8871883664, nantes: 6363.461319105993] 

Я хочу, чтобы отсортировать массив по значению (число), то я могу Нет, как это сделать. Я хочу, чтобы результат был следующим: [nantes: 6363.461319105993, paris: 348589.40826358093, londres: 490078.8871883664] Я попробовал что-то вроде этого, но он не работает.

function compare(x, y) { 
    return x - y; 
} 
tab.sort(compare); 
+3

Ваш массив ошибочно объявлен. –

+0

Возможный дубликат [Сортировка объектов в массиве по значению поля в JavaScript] (http://stackoverflow.com/questions/1129216/sorting-objects-in-an-array-by-a-field-value-in- javascript) –

+2

Это не массив. Это даже не действительный JavaScript. – JLRishe

ответ

0

Эта декларация массива неправильно. Если вы хотите использовать имя для элементов, вы должны использовать js-объекты, такие как код ниже.

var tab = {paris: 56765, londres: 3456546, 'new york': 25455654} 

или

var tab = [{paris: 56765}, {londres: 3456546}, {'new york': 25455654}] 

Но если вы хотите иметь сортировать по этой функции сравнения, сделать что-то вроде этого:

var tab = [{name: paris, value: 56765}, {name: londres, value: 3456546}, {name: 'new york', value: 25455654}] 

и изменение сравнить метод следующим образом:

function compare(x, y) { 
    return x.value - y.value; 
} 

Если вы хотите га Еще больше условий в вашем объекте js можно использовать this js library.

-1

Array.prototype.sort()

Объекты могут быть отсортированы с учетом значения одного из их свойств.

var items = [ 
    { name: 'Edward', value: 21 }, 
    { name: 'Sharpe', value: 37 }, 
    { name: 'And', value: 45 }, 
    { name: 'The', value: -12 }, 
    { name: 'Magnetic' }, 
    { name: 'Zeros', value: 37 } 
]; 
items.sort(function (a, b) { 
    if (a.name > b.name) { 
    return 1; 
    } 
    if (a.name < b.name) { 
    return -1; 
    } 
    // a must be equal to b 
    return 0; 
}); 

Это должно дать вам идею

+0

Это не то, что я хочу. Я хочу отсортировать массив по значению, которое является числом. Насколько я понимаю, это может только сор по имени в вашем примере – TotuDoum

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