javascript - 關於資料統計方法,jQuery,急線上等。

來源:互聯網
上載者:User
網頁中產生了一個類似


   ...
   
商品名稱 數量 事件
商品名稱 數量 事件
商品名稱 數量 事件

情況:
1.商品名稱有很多種,其中會有一些是相同的
2.每個商品下都有一個事件,事件可能會不相同

需求:
我需要做一個統計表,相同的商品名的商品整合在一起,並且根據不的事件進行分類,再統計整合後的不同事件的商品數量。

例子:


  
飛機 1 損壞
坦克 2 維修
飛機 2 維修
飛機 3 損壞

樣本需求效果

飛機共6架,損壞4架,維修2架坦克共2架,維修2架

現有資料

$('#tbody tr').each(function(index) {});

回複內容:

網頁中產生了一個類似


   ...
   
商品名稱 數量 事件
商品名稱 數量 事件
商品名稱 數量 事件

情況:
1.商品名稱有很多種,其中會有一些是相同的
2.每個商品下都有一個事件,事件可能會不相同

需求:
我需要做一個統計表,相同的商品名的商品整合在一起,並且根據不的事件進行分類,再統計整合後的不同事件的商品數量。

例子:


  
飛機 1 損壞
坦克 2 維修
飛機 2 維修
飛機 3 損壞

樣本需求效果

飛機共6架,損壞4架,維修2架坦克共2架,維修2架

現有資料

$('#tbody tr').each(function(index) {});

//定義存放統計結果的對象//JS的對象你可將其理解成為一個Hash資料結構//最後的資料結構為//{//  '產品key1':{//    prod:'產品名1',//    event:{//        ‘事件類型Key1’:{type:'事件類型1',count:事件數目量},//        ‘事件類型Key2’:{type:'事件類型2',count:事件數目量}//        }//   },//   '產品key2':{//    prod:'產品名2',//    event:{//        ‘事件類型Key3’:{type:'事件類型3',count:事件數目量},//        ‘事件類型Key4’:{type:'事件類型4',count:事件數目量}//        }//   },//    ... // }var result={};var fieldMapping=['prod','count','eventType'];$('tbody tr').each(function(index,item) {    //定義存放一行資料的對象    var lineData={};    //尋找tr下的所有td元素,對其遍曆    $(item).find('td').each(function(index,item){        //讀取td元素下的常值內容        var value=$(item).text();        //fieldMapping[index] 按位置讀取定義的屬性名稱,並將讀取的內容賦給lineData        //第1個td為產品名,第2個td為數量,第3個為事件類型        lineData[fieldMapping[index]]=value;    });    //擷取整理行資料後,對其進行統計處理    processRow(lineData);});//處理擷取到的一行資料,按產品,及事件類型統計function processRow(lineData){    //判斷result對象中是否有 某個產品的屬性,如果不存在,那麼建立這個屬性    //並將一個統計對象賦值給這個屬性    if(!result[lineData.prod]){        result[lineData.prod]={            prod: lineData.prod,            event:{}        };    }        //讀取event對象下的特定類型的屬性資料    var event=result[lineData.prod]['event'][lineData.eventType];    //如果這個事件類型不存在,那麼添加事件類型,並設定數量為0    if(!event){        event={            type: lineData.eventType,            count:0        };        result[lineData.prod]['event'][lineData.eventType]=event;    }    //將當前行資料中的事件數目量資訊累加到事件數目量統計對象上    event.count=parseInt(lineData.count)+event.count;}console.log(result);

啟動並執行結果如所示:

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.