在排序方法javascript中解构
我编写了一个具有排序方法的模块。我还试图使它更加灵活,并对我将要设置的任何内容进行排序(或多或少),但我不知道如何在排序方法中进行排序。我尝试的是最后一种方法,但显然效果不好。有人知道在这个例子中我应该纠正什么吗在排序方法javascript中解构,javascript,sorting,parameter-passing,code-structure,Javascript,Sorting,Parameter Passing,Code Structure,我编写了一个具有排序方法的模块。我还试图使它更加灵活,并对我将要设置的任何内容进行排序(或多或少),但我不知道如何在排序方法中进行排序。我尝试的是最后一种方法,但显然效果不好。有人知道在这个例子中我应该纠正什么吗 let products = [ { name: "Grejpfrut", calories: 170, color: "czerwony", sold: 8200 }, { name: "Pomarańcza", calories: 160, color: "pomarańczo
let products = [ { name: "Grejpfrut", calories: 170, color: "czerwony", sold: 8200 },
{ name: "Pomarańcza", calories: 160, color: "pomarańczowy", sold: 12101 },
{ name: "Cola", calories: 210, color: "karmelowy", sold: 25412 },
{ name: "Cola dietetyczna", calories: 0, color: "karmelowy", sold: 43922 },
{ name: "Cytryna", calories: 200, color: "bezbarwny", sold: 14983 },
{ name: "Malina", calories: 180, color: "różowy", sold: 8200 },
{ name: "Piwo korzenne", calories: 200, color: "karmelowy", sold: 9909 },
{ name: "Woda", calories: 0, color: "bezbarwny", sold: 62123 }
];
class compareSold {
constructor(param1, param2) {
this.param1 = param1 ;
this.param2 = param2 ;
// this.products = products ;
const { calories, sold } = products;
this.sortType = {
asc: (param1, param2) => {
// console.log(param1);
if (param1.sold > param2.sold) {
return 1
} else if (param1.sold === param2.sold) {
return 0
} else {
return -1
}
},
dsc: (param1, param2) => {
// console.log(param1);
if (param2.sold > param1.sold) {
return 1
} else if (param1.sold === param2.sold) {
return 0
} else {
return -1
}
},
eqal: (param1, param2) => {
// console.log(param1);
if (param1.calories > param2.calories) {
return 1
} else if (param1.calories === param2.calories) {
console.log('a wowowiwa !!!');
} else {
return -1
}
},
eqal2: (param1, param2) => {
console.log(param1);
if (param1.sold > param2.sold) {
return 1
} else if ({sold} === {sold}) {
console.log('a wowowiwa !!!');
} else {
return -1
}
}
}
}
}
const { calories, sold } = products; const compareSoldASCPass = new
compareSold();
// function calories ({calories}) { console.log(calories)}; //
// Type of sorting(asc, dsc) ////////////////////////////////////////
const compareSoldASC =
products.sort(compareSoldASCPass.sortType.eqal2)
// console.log(compareSoldASC);
module.exports = compareSoldASC;
你能解决你的问题吗?怎么解决?这是我的第一篇文章,所以我不确定什么是错的什么是对的。什么是
comparesoldacspass
,compareSoldUp
,compareSoldASC
?请提供一个代码示例,我们可以在没有错误的情况下运行,以查看问题。好的,我进行了更正。这里是解释:const comparesoldascass是compare sell的一个简单的新实例,const compareSoldASC是一个用于新实例的方法。在这个规范中,是一个来自compare sell类的方法equal2。。。。代码工作正常,但我的问题是如何在类之外进行分解结构,以传递产品的特定参数?1<代码>常量{卡路里,已售出}=产品代码>没有任何意义,因为产品是数组2。您不需要将任何内容传递给构造函数;sort()方法调用函数并传递两个参数;你不需要它们作为实例变量,也不需要对任何东西进行分解。你能解决你的问题吗?如何解决?这是我的第一篇文章,所以我不确定什么是错的什么是对的。什么是comparesoldacspass
,compareSoldUp
,compareSoldASC
?请提供一个代码示例,我们可以在没有错误的情况下运行,以查看问题。好的,我进行了更正。这里是解释:const comparesoldascass是compare sell的一个简单的新实例,const compareSoldASC是一个用于新实例的方法。在这个规范中,是一个来自compare sell类的方法equal2。。。。代码工作正常,但我的问题是如何在类之外进行分解结构,以传递产品的特定参数?1<代码>常量{卡路里,已售出}=产品代码>没有任何意义,因为产品是数组2。您不需要将任何内容传递给构造函数;sort()方法调用函数并传递两个参数;您不需要将它们作为实例变量,也不需要对任何内容进行分解