數組我有一個Javascript數組是這樣的:使用lodash排序對象上浮點數
var list = [{Name: 'X', Value: 140.000},
{Name: 'Y', Value: 200.000},
{Name: 'Z', Value: 50.000}]
(它有很多屬性,但已爲簡潔起見省略)。
我已經創建了一個函數,使用傳遞給函數的屬性的名稱對此列表進行排序。我用lodash很容易做到這一點,但如果我按價值排序,這些值似乎被視爲一個字符串並且排序錯誤。
這是我的排序功能(到目前爲止)
function sortByField(fieldName)
{
list = _.sortBy(list, fieldName);
//afterwards I call reverse() if the sortDirection is descending, but I omitted this part for brevity
}
價值排序後,我得到了下面的數組:
var list = [{Name: 'X', Value: 140.000},
{Name: 'Y', Value: 200.000},
{Name: 'Z', Value: 50.000}]
你可以看到治療的價值,例如字符串,即使他們是十進制數。 'Z'對象應該是第一個。我該如何解決這個問題?
我一直在搜索lodash文檔,但似乎無法找到任何與此問題有關的東西。請幫忙嗎?這將非常感激。
編輯:我只是意識到價值屬性是通過網頁(輸入控件)填寫,所以JavaScript實際上將它作爲字符串添加到數組中,這可能會導致問題。我可以以某種方式將此投射到一個浮動?或者我不得不求助於JavaScript的內置排序功能,並創建我自己的比較?
只需使用簡單的內置的JavaScript'的.sort()'有回調返回兩個「值」屬性之間的區別。 – Pointy
爲什麼小數點後的位置? –
哦,這是一個數千分隔符,而不是示例中的小數點。在我的國家,「。」是一個數千分隔符:-) –