Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在排序方法javascript中解构_Javascript_Sorting_Parameter Passing_Code Structure - Fatal编程技术网

在排序方法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()方法调用函数并传递两个参数;您不需要将它们作为实例变量,也不需要对任何内容进行分解