2014-10-11 49 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

你的數組是錯誤的聲明。 – 2014-10-11 18:50:19

+0

[在JavaScript中通過字段值排序數組中的對象](http://stackoverflow.com/questions/1129216/sorting-objects-in-an-array-by-a-field-value-in- javascript) – 2014-10-11 18:51:50

+2

這不是一個數組。這甚至不是有效的JavaScript。 – JLRishe 2014-10-11 18:54:40

回答

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 2014-10-11 19:00:01