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