运用汇总

1、将数组对象arr按照num倒序排序。

var arr = [
    {name:'A',num:4},
    {name:'G',num:3},
    {name:'V',num:5},
    {name:'A',num:2},
    {name:'X',num:9},
    {name:'R',num:6},
    {name:'N',num:undefined},
]
function compare(property){  // 该函数用来接收对象属性名
    return function(a,b){
        var value1 = a[property];
        var value2 = b[property];
        return value2 - value1;
    }
}    
arr.sort(compare('num'));// 用法:sort方法接收这个函数作为参数

2、$.grep 处理数据

(1)数据

data.data = [
{
BUY_PRICE: -500,
BUY_QTY: 30,
GOODS_ID: 292,
SKU_ID: 52,
SKU_NAME: "液氯(1)",
SKU_PRICE: 0,
delivery_fee: 0,
goods_sku_price: 950
},
{
BUY_PRICE: -500,
BUY_QTY: 52,
GOODS_ID: 292,
SKU_ID: 20,
SKU_NAME: "液氯(瓶车)",
SKU_PRICE: 0,
delivery_fee: 0,
goods_sku_price: 950
},
{
BUY_PRICE: -500,
BUY_QTY: 21,
GOODS_ID: 292,
SKU_ID: 52,
SKU_NAME: "液氯(1)",
SKU_PRICE: 0,
delivery_fee: 0,
goods_sku_price: 950
},
{
BUY_PRICE: -500,
BUY_QTY: 30,
GOODS_ID: 292,
SKU_ID: 20,
SKU_NAME: "液氯(瓶车)",
SKU_PRICE: 0,
delivery_fee: 0,
goods_sku_price: 950
},
{
BUY_PRICE: -500,
BUY_QTY: 21,
GOODS_ID: 292,
SKU_ID: 21,
SKU_NAME: "液氯(2)",
SKU_PRICE: 0,
delivery_fee: 0,
goods_sku_price: 950
}
]

(2)处理

var arr = res.data.data;
var all = [];
var nameArrO = [],nameArrN = [];

for(var i=0;i<arr.length;i++){
   nameArrO.push(arr[i].SKU_ID)
}
for(var i = 0; i < nameArrO.length; i++){
    if(nameArrN.indexOf(nameArrO[i]) == -1){
        nameArrN.push(nameArrO[i]);
    }
}
for(var i = 0; i < nameArrN.length; i++){
  var item = $.grep(arr, function(num,index) {
      return ( num.SKU_ID == nameArrN[i] );
  });
  var totalNum = 0,totalPrice = 0;

  for(var j=0;j<item.length;j++){
      totalNum+=item[j].BUY_QTY;
      totalPrice+=item[j].BUY_QTY*(item[j].BUY_PRICE+item[j].delivery_fee1);
  }
  all.push({
      name:item[0].SKU_NAME,
      id:item[0].SKU_ID,
      totalNum:totalNum,
      totalPrice:totalPrice,
      data:item
  })
}

 (3)处理后返回的数据

all =  [
    {
        data: [
            {
               ...data.data
            },
        ]
        id: 20,
        name: "液氯(瓶车)",
        totalNum: 72,
        totalPrice: -6780,
    },
    {
        data: [
            {
               ...data.data
            },
        ]
        id: 52,
        name: "液氯(1)",
        totalNum: 72,
        totalPrice: -6780,
    },
    {
        data: [
            {
               ...data.data
            },
        ]
        id: 21,
        name: "液氯(2)",
        totalNum: 72,
        totalPrice: -6780,
    }
]

  

 

  

 

posted @ 2019-05-14 11:46  ai_写博客的潘潘  阅读(98)  评论(0)    收藏  举报