我有一个数组,其中的数据与此类似,但有更多字段可供排序:
const shirts= [
{
type: "T-shirt",
size: "L",
color: "Black",
},
{
type: "Dress Shirt",
size: "S",
color: "Brown",
},
{
type: "Sweatshirt",
size: "M",
color: "Red",
},
{
type: "Polo",
size: "XS",
color: "Pink",
},
...]
我有一个排序功能,根据选择的内容以不同的方式工作,例如,如果用户按尺寸排序,则需要从 XS 到 XL,但任何其他选项都需要按字母顺序排序。这就是我所拥有的:
//sort is the option the user decided to sort by
SortedShirts(sort,shirts){
var newShirtArray=[];
var size1=0;
var size2=0;
if(sort === "type"){
newShirtArray= shirts.sort(function(shirt1,shirt2){
if (shirt1.type> shirt2.type){
return 1;
}
else{
return -1;
}
});
}
else if(sort === "color"){
newShirtArray = shirts.sort(function(shirt1,shirt2){
if (shirt1.color > shirt2.color){
return 1;
}
else{
return -1;
}
});
}
else if(sort === "size"){
newShirtArray = shirts.sort(function(shirt1,shirt2){
if(shirt1.size==="XS"){
size1=0;
}
else if(shirt1.size==="S"){
size1=1;
}
else if(shirt1.size==="M"){
size1=2;
}
else if(shirt1.size==="L"){
size1=3;
}
else if(shirt1.size==="XL"){
size1=4;
}
if(shirt2.size==="XS"){
size2=0;
}
这对我来说似乎是重复的,因为类型和颜色以相同的方式排序,只是在不同的字段中,我觉得我可以将其放入一种排序中,但我不确定如何做到这一点。我想知道是否有这样的事情
或者减少我的代码的另一种方法?
暮色呼如
慕的地6264312
相关分类