开始我有对象的数组:
[{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呢?它不起作用 –