開始我有對象的數組:
[{id:1, name:"Samsung", price :"$937.78", rating :4.5}, ..]
當我按價格排序排序它作爲一個字符串。我試圖拼接$符號,但它不起作用 - 它排序爲一個字符串。
orderBy(this.props.price_list, item => item.price.slice(1), [sortDir.toLowerCase()])
P.S. 很抱歉的是,我並沒有注意到if statement
是不正確的,所以我正在整理陣兩次,第一次爲一個號碼,第二作爲一個字符串
sortTable(sortDir = 'ASC', columnName) {
if (columnName === 'price'){
this.setState({ list: orderBy(this.props.price_list, item => parseFloat(item.price.slice(1)), [sortDir.toLowerCase()]) })
}
this.setState({ list: orderBy(this.props.price_list, [columnName], [sortDir.toLowerCase()]) })
}
它仍然是切片後的字符串。在item.price.slice(1)之前加上一個加號:'+ item.price.slice(1)'。 –
你會得到任何其他貨幣的價格?因爲它看起來像工作https://codepen.io/kejt/pen/RgOqXY?editors=1111 – Kejt
價格100和97呢?它不起作用 –