2015-04-02 23 views
-1

我已經使用underscore.js sortBy集合,但它創建了用特定鍵排序json。鍵的類型可以是數字,文本或日期。Underscore.js sortBy結果錯誤的順序

var arr = [ 
    {"NodeName)":"Drama"}, 
    {"NodeName":"Song"}, 
    {"NodeName":"Jokes"}, 
    {"NodeName":"movie "}, 
    {"NodeName":"music"}, 
    {"NodeName":"Main"}, 
    {"NodeName)":"Random"}, 
    {"NodeName":"Silent"}, 
    {"NodeName":"travel"}, 
    {"NodeName":"udefined"}]; 

var testSortBy = _.chain(arr).sortBy("NodeName").value(); 

結果顯示如下:

Jokes 
Main 
Silent 
Song 
movie 
music 
travel 
udefined 
Drama 
Random 

,但結果應該是這樣的:

Drama 
Jokes 
moive 
music 
Main 
Random 
Silent 
Song 
travel 
udefined 

我想這個問題可以是大寫和小寫的問題。我怎樣才能避免這個問題?

+4

你有「NodeName)」作爲Drama和Random的關鍵。這是一個錯字還是導致行爲? – zvona 2015-04-02 10:26:20

+0

刪除zvona提到的括號,它應該可以工作。 – Rouby 2015-04-02 10:30:14

+0

在這個問題中誤添加了括號,但是我沒有在代碼中加上這個,所以結果仍然是一樣的 – MAT14 2015-04-03 03:35:31

回答

-1

你的數組中的值使用的開源項目jinqJs

See Fiddle

排序。

var result = jinqJs().from(arr).orderBy([{field: 0}]).select(); 

這裏沒關係,按鍵是不同的,只是值排序。但請記住,javaScript是大小寫敏感的,並且您的某些值是大寫和小寫。