Javascript 对特定列进行排序

Javascript 对特定列进行排序,javascript,reactjs,Javascript,Reactjs,我有一个数组items[],它有四个字段name,origin,destination,seats。 我想在单击表标题时按字母顺序对名称进行排序,即name 这是我的代码片段 带有数组声明变量的JS文件,并将值传递给form.JS Stuff.js import React,{Component}来自'React'; 导入“/App.css”; 从“./表”导入选项卡; 从“./Form”导入表单; 类扩展组件{ 构造函数(){ 超级(); 此.state={ 名称:“”, 来源:'', 目标

我有一个数组
items[]
,它有四个字段
name
origin
destination
seats
。 我想在单击表标题时按字母顺序对名称进行排序,即
name

这是我的代码片段

带有数组声明变量的JS文件,并将值传递给form.JS

Stuff.js

import React,{Component}来自'React';
导入“/App.css”;
从“./表”导入选项卡;
从“./Form”导入表单;
类扩展组件{
构造函数(){
超级();
此.state={
名称:“”,
来源:'',
目标:“”,
座位:'',
项目:[]
}
};
handleFormSubmit=(e)=>{
e、 预防默认值();
让items=[…this.state.items];
推({
名称:this.state.name,
来源:this.state.origin,
目的地:this.state.destination,
座位:这个州
});
这是我的国家({
项目,
名称:“”,
来源:'',
目标:“”,
座位:''
});
};
handleInputChange=(e)=>{
让输入=e.目标;
让name=e.target.name;
设value=input.value;
这是我的国家({
[名称]:值
})
};
render(){
返回(
);
}
}

导出默认内容我不详细介绍ReactJS,您需要自己实现。想法很简单:

  • 为标头创建事件处理程序,如(onClick)=“sortByName()”
  • 通过将数据传递到函数sortByName中来定义函数sortByName,并对其进行手动排序,您可以使用Array.sort()来实现这一点
  • 更新状态将使React重新渲染具有更新的零件

  • 我希望这能回答你的问题:

    const items = [
        {
        name: 'C',
        quantity: 2
      },
      {
        name: 'B',
        quantity: 3
      },
      {
        name: 'A',
        quantity: 8
      }
    ];
    
    console.log(items);
    
    items.sort((a,b) => {
        const name1 = a.name.toLowerCase(), name2 = b.name.toLowerCase();
        return name1 === name2 ? 0 : name1 < name2 ? -1 : 1;
    });
    
    console.log(items);
    
    const项=[
    {
    名称:‘C’,
    数量:2
    },
    {
    名称:‘B’,
    数量:3
    },
    {
    名称:‘A’,
    数量:8
    }
    ];
    控制台日志(项目);
    项目排序((a,b)=>{
    const name1=a.name.toLowerCase(),name2=b.name.toLowerCase();
    返回name1===name2?0:name1

    分享您实现排序的方法。我正在考虑-compare(a,b){//使用toUpperCase()忽略字符大小写const nameA=a.name.toUpperCase();const nameB=b.name.toUpperCase();让comparison=0;if(nameA>nameB){comparison=1;}else if(nameA