Javascript 如何对具有不同数据字段的多个表头使用一个函数

Javascript 如何对具有不同数据字段的多个表头使用一个函数,javascript,reactjs,Javascript,Reactjs,因此,我有一些函数可以对表中的数字进行排序: sortNumbers1(a,b,order){ if (order === 'desc') { return Number(b.newScore) - Number(a.newScore); } else { return Number(a.newScore) - Number(b.newScore); } } sortNumbers2(a,b,order){ if (order === 'desc'

因此,我有一些函数可以对表中的数字进行排序:

sortNumbers1(a,b,order){
   if (order === 'desc') {
     return Number(b.newScore) - Number(a.newScore);
    } else {
     return Number(a.newScore) - Number(b.newScore);
  }
} 

sortNumbers2(a,b,order){
   if (order === 'desc') {
     return Number(b.oldScore) - Number(a.oldScore);
    } else {
     return Number(a.oldScore) - Number(b.oldScore);
  }
}  
<BootstrapTable data={this.props.resData}>
   <TableHeaderColumn dataField="oldScore" dataSort={true} sortFunct={this.sortNumbers2}>       
     Old Score
   </TableHeaderColumn>
   <TableHeaderColumn dataField="newScore" dataSort={true} sortFunct={this.sortNumbers1}>
     New Score
   </TableHeaderColumn>
</BootstrapTable>
sortNumbers1(a、b、订单){
如果(顺序=='desc'){
返回编号(b.newScore)-编号(a.newScore);
}否则{
返回编号(a.newScore)-编号(b.newScore);
}
} 
排序编号2(a、b、订单){
如果(顺序=='desc'){
返回编号(b.oldScore)-编号(a.oldScore);
}否则{
返回编号(a.oldScore)-编号(b.oldScore);
}
}  
旧账
新分数
正如您所看到的,我必须为每个表头定义一个排序函数(因为它们有不同的数据字段),如果我有100个表头呢

我的问题:是否有一种方法可以只定义一个函数并用于所有表头(例如使用参数)


我尝试使用一个函数并为数据字段传递一个参数,但我不知道如何正确执行。

您可以定义一个字段,通过该字段对参数中的数据进行排序,如下所示:-

sortNumbersByField(a, b, order, field){
   if (order === 'desc') {
     return Number(b[field]) - Number(a[field]);
    } else {
     return Number(a[field]) - Number(b[field]);
  }
} 

<BootstrapTable data={this.props.resData}>
   <TableHeaderColumn dataField="oldScore" dataSort={true} sortFunct={this.sortNumbersByField}>       
     Old Score
   </TableHeaderColumn>
   <TableHeaderColumn dataField="newScore" dataSort={true} sortFunct={this.sortNumbersByField}>
     New Score
   </TableHeaderColumn>
</BootstrapTable>
sortNumbersByField(a、b、订单、字段){
如果(顺序=='desc'){
返回编号(b[字段])-编号(a[字段]);
}否则{
返回编号(a[字段])-编号(b[字段]);
}
} 
旧账
新分数

在从TableHeaderColumn调用函数sortNumbersByField时,您的代码可以定义要根据其对数据进行排序的列/字段。

这不起作用。在不使用参数的情况下调用函数时,它如何知道参数字段是什么?当我更改参数的位置时,它实际上起了作用,如=>sortNumbersByField(a,b,order,field){//code…}我会给出最佳答案,但你能告诉我它如何知道参数的值吗?(或者给我一个关于这个主题的链接)这取决于您如何调用函数sortNumbersByField。如果函数将收到正确的参数,则它将根据提供的列对项目进行排序。@johndeveto如果对您有效,请接受答案。