Javascript 使用jquery按价格对对象排序 我的要求是根据价格对物品进行分类。根据现金,物品应该进行分类

Javascript 使用jquery按价格对对象排序 我的要求是根据价格对物品进行分类。根据现金,物品应该进行分类,javascript,php,jquery,Javascript,Php,Jquery,下面是我安慰和得到的样本数据,并显示在下面 通过安慰满天。排序(测试);我得到了以下数据 输出应该是这样的 1: Object id: 1 test: Array[1] 0: Object fuldata: "xyz" pat: "xyz" img: "6E.gif" nos: "0 - stop" show_price: 1 sour: "BLR" tickettype: "e" __proto__: Object length: 1 __proto__: Array[0] price:

下面是我安慰和得到的样本数据,并显示在下面

  • 通过安慰满天。排序(测试);我得到了以下数据


  • 输出应该是这样的

    1: Object
    id: 1
    test: Array[1]
    0: Object
    fuldata: "xyz"
    pat: "xyz"
    img: "6E.gif"
    nos: "0 - stop"
    show_price: 1
    sour: "BLR"
    tickettype: "e"
    __proto__: Object
    length: 1
    __proto__: Array[0]
    price: Array[1]
    0: Object
    cash: 2299
    total_surcharge: 885
    total_tax: 1414
    __proto__: Object
    length: 1
    
    2: Object
    id: 1
    test: Array[1]
    0: Object
    fuldata: "xyz"
    pat: "xyz"
    img: "6E.gif"
    nos: "0 - stop"
    show_price: 1
    sour: "BLR"
    tickettype: "e"
    __proto__: Object
    length: 1
    __proto__: Array[0]
    price: Array[1]
    0: Object
    cash: 3399
    total_surcharge: 885
    total_tax: 1414
    __proto__: Object
    length: 1
    
    0: Object
    id: 1
    test: Array[1]
    0: Object
    fuldata: "xyz"
    pat: "xyz"
    img: "6E.gif"
    nos: "0 - stop"
    show_price: 1
    sour: "BLR"
    tickettype: "e"
    __proto__: Object
    length: 1
    __proto__: Array[0]
    price: Array[1]
    0: Object
    cash: 44499
    total_surcharge: 885
    total_tax: 1414
    __proto__: Object
    length: 1
    

    对于此类操作,您可以尝试使用lo dash库。()


    请查看文档以了解更多信息。SortBy函数应该可以解决您的问题

    Javascript不能确保对象的顺序,因此这里不可能直接对对象进行排序。请参阅以更好地了解原因和相关文档。在您的情况下,我将重新创建一个
    键值
    对列表,将
    作为对象的
    现金
    属性,然后直接修改
    排序
    函数对该数组进行排序

    假设您的初始对象数组名为
    list1
    ,则可以执行以下操作:

     For simplicity:
     list2 = [];
     for (i=0;i<list1.length;i++){ list2.push({'key': list1[i].price.cash,'val' : list1[i]});}
    
     //list2 would be populated as :
     list2 = [{key:44499, val: Object},..];
    
     //To sort the list2 based on ascending order of cash
    
     list2 = list2.sort(function (a, b) {
          return a.key - b.key;
     });
    
    
     //In your case,you could accomplish this directly as well doing just :
     list1.sort(function (a, b) {
      return a.cash.price- b.cash.price;
     });
    
    为简单起见:
    清单2=[];
    
    对于(i=0;i而言,也可以这样做:

       var myObject= [
              { Cash: 323, Text: "abc" },
              { Cash: 4567, Text: "zxc" },
              { Cash: 83456, Text: "fgg" },
              { Cash: 72, Text: "hjk" },
              { Cash: 1, Text: "tyu" },
              { Cash: 543, Text: "bgt" },
              { Cash: 245, Text: "ljj" },
              { Cash: 68798, Text: "mnu" }
       ];
    
       // Sort ascending
       myObject.sort(function (a,b){
             if (a.Cash < b.Cash)
                return -1;
             if (a.Cash> b.Cash)
                return 1;
             return 0;
       });
    
       // Sort descending
       myObject.sort(function (a,b){
             if (a.Cash < b.Cash)
                return 1;
             if (a.Cash> b.Cash)
                return -1;
             return 0;
       });
    
    var myObject=[
    {现金:323,文本:“abc”},
    {现金:4567,文本:“zxc”},
    {现金:83456,文本:“fgg”},
    {现金:72,文本:“hjk”},
    {现金:1,文本:“tyu”},
    {现金:543,文本:“bgt”},
    {现金:245,文本:“ljj”},
    {现金:68798,文本:“mnu”}
    ];
    //升序排序
    myObject.sort(函数(a,b){
    如果(a.现金b.现金)
    返回1;
    返回0;
    });
    //降序排序
    myObject.sort(函数(a,b){
    如果(a.现金b.现金)
    返回-1;
    返回0;
    });
    
    只需选择所需对象的“Cash”属性并对其进行排序。
    希望有帮助。

    什么是
    test
    full_sky.sort(test)
    api的响应以json的形式获取,将数据分配给变量并推送到full_sky.push(test);
       var myObject= [
              { Cash: 323, Text: "abc" },
              { Cash: 4567, Text: "zxc" },
              { Cash: 83456, Text: "fgg" },
              { Cash: 72, Text: "hjk" },
              { Cash: 1, Text: "tyu" },
              { Cash: 543, Text: "bgt" },
              { Cash: 245, Text: "ljj" },
              { Cash: 68798, Text: "mnu" }
       ];
    
       // Sort ascending
       myObject.sort(function (a,b){
             if (a.Cash < b.Cash)
                return -1;
             if (a.Cash> b.Cash)
                return 1;
             return 0;
       });
    
       // Sort descending
       myObject.sort(function (a,b){
             if (a.Cash < b.Cash)
                return 1;
             if (a.Cash> b.Cash)
                return -1;
             return 0;
       });