2013-06-05 177 views
0

我想按保存數字值的字段對對象數組進行排序。而這個控制檯輸出是調用的結果:按對象中數字字段對數組進行排序

console.log(_.sortBy(d, 'userid'));

[Object, Object, Object] 
0: Object 
count: "6" 
name: "Andrey" 
userid: "1234" 
__proto__: Object 
1: Object 
count: "9" 
name: "Lucas" 
userid: "1337" 
__proto__: Object 
2: Object 
count: "30" 
name: "M" 
userid: "7800" 

它看起來不錯,就像我希望它發生。

然而,當我把這個:

console.log(_.sortBy(d, 'count'));

不是看到訂單數6的陣列,算上9,計數30,我看到:

Array[3] 
0: Object 
count: "30" 
name: "M" 
userid: "7800" 
__proto__: Object 
1: Object 
count: "6" 
name: "Andrey" 
userid: "1234" 
__proto__: Object 
2: Object 
count: "9" 
name: "Lucas" 
userid: "1337" 

誰能幫助我理解發生了什麼,我該如何解決?你之前

+6

我沒有看到任何數字值。他們都是字符串。 ''9''與'9'不同,特別是在比較時 – Ian

+1

正確分類,「30」(「3」)在「9」之前的「6」之前。 – Johan

+1

你的用戶名排序很幸運,因爲除了數字升序外,他們也按字母升序排列。還會在裏面放上一個用戶標識符「'7」'的值,你會看到會發生什麼。 –

回答

1

使用parseInt(obj.count)排序。

+0

在向我的數組添加元素時,我使用了此功能。感謝您提供有用的答案。 – LucasSeveryn

相關問題