Javascript React引导表下一步对动态表上的字母数字字符串进行排序
我有一个动态表,在React引导表中生成70多个列。我在尝试按字母数字顺序对列进行排序时遇到了一个问题(有些列是数字,有些列是字母)。输入到列中的数据都是字符串。我使用的是sortFunc,但它当然只对数值字符串的列进行排序。我怎样才能让sortFunc对两者进行排序 这是我尝试过的功能。签出sortFuncJavascript React引导表下一步对动态表上的字母数字字符串进行排序,javascript,reactjs,react-bootstrap-table,Javascript,Reactjs,React Bootstrap Table,我有一个动态表,在React引导表中生成70多个列。我在尝试按字母数字顺序对列进行排序时遇到了一个问题(有些列是数字,有些列是字母)。输入到列中的数据都是字符串。我使用的是sortFunc,但它当然只对数值字符串的列进行排序。我怎样才能让sortFunc对两者进行排序 这是我尝试过的功能。签出sortFunc let columns = []; let headers = Object.keys(this.props.reconDetails[0]); //creating the text f
let columns = [];
let headers = Object.keys(this.props.reconDetails[0]); //creating the text for headers
const newColumn = {
dataField: header,
text: header,
sort: true,
sortFunc: (a, b, order, dataField) => {
if (order === 'asc') {
return b - a;
}
return a - b;
};
columns.push(newColumn);
this.setState({
columns
})
}
引导表:
BootstrapTable
striped
headerClasses="tableHeader"
classes="tableBody"
wrapperClasses="table-responsive"
keyField={"Case_Line_Number"}
data={this.state.RECON_DETAIL}
columns={this.state.columns}
/>
在这里找到了答案,因为它解释得很好。作者使用了localeCompare方法 我解决了以下问题:
sortFunc: (a, b, order, dataField) => {
if (order === 'asc' || !order) {
return b.localeCompare(a, navigator.languages[0] || navigator.language, {numeric: true, ignorePunctuation: true});
}
return a.localeCompare(b, navigator.languages[0] || navigator.language, {numeric: true, ignorePunctuation: true});
},