亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按 2 個不同的屬性對數組進行排序/分組

按 2 個不同的屬性對數組進行排序/分組

皈依舞 2022-12-22 15:47:58
我有一個基于其“程序”屬性的分組/排序數組,這很棒。但是現在我需要根據該分組內的不同屬性(可交付)進行排序,這可能嗎?如果是這樣,我怎樣才能做到這一點?這是我的桌子的照片??纯此侨绾伟闯绦蚪M織的?在程序分組中,我還想根據可交付項目進行排序/分組,因為每個程序中會有兩個以上的方法。此外,如果工作量不大,我也希望使這些行可點擊(展開/折疊),這樣表格在加載后不會有 100 行長。這是我的預期輸出:預期結果+------------+----------------------+-----------+------------+--------------+---------------------+| Program    | Deliverable          |  Date     |   Approved | Notes        | To                  |+------------+----------------------+-----------+------------+--------------+---------------------+| Program 1  |                                                                                    |+------------+----------------------+-----------+------------+--------------+---------------------+|            | Monthly Status Report|                                                             |+------------+----------------------+-----------+------------+--------------+---------------------+|            |                      | 05/10/2020| Yes        | Example Notes| [email protected] |+------------+----------------------+-----------+------------+--------------+---------------------+|            |                      | 03/30/2020| No         | Example Notes| [email protected] |+------------+----------------------+-----------+------------+--------------+---------------------+|            | Meeting Minutes      |                                                             |+------------+----------------------+-----------+------------+--------------+---------------------+
查看完整描述

2 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

只需對您的結果進行排序。


Object.keys(sortedObj).forEach(key => {

      tableContent += "<tr>";

      tableContent += "<td>" + key + "</td>";

      tableContent += "</tr>";

      sortedObj[key].sort((a,b)=>{

          if (a.Deliverable > b.Deliverable) return 1;

          if (a.Deliverable < b.Deliverable) return -1;

          return 0;

      }).forEach(obj => {

        tableContent += "<tr>";

        tableContent += "<td> </td>";

        tableContent += "<td>" + obj.To + "</td>";

        tableContent += "<td>" + obj.Date + "</td>";

        tableContent += "<td>" + obj.Approved + "</td>";

        tableContent += "<td>" + obj.Notes + "</td>";

        tableContent += "<td>" + obj.Deliverable + "</td>";

        tableContent += "</tr>";

      });

    });


查看完整回答
反對 回復 2022-12-22
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

這是代碼:


var sortedObj = {}

objItems.forEach(item => {

var program = item.Program;

var deliverable = item.Deliverable;

delete (item.Program); //remove this line to keep the program in the item data

delete (item.Deliverable); //remove this line to keep the deliverable in the item data

if(!sortedObj[program]){

sortedObj[program] = {};

}

if(!sortedObj[program][deliverable]){

sortedObj[program][deliverable] = [];

}

sortedObj[program][deliverable].push(item);

});

 

Object.keys(sortedObj).forEach((program, index) => {

tableContent += "<tr class='breakrow'>";

tableContent += "<td>" + program + "</td>";

tableContent += "</tr>";

Object.keys(sortedObj[program]).forEach((deliverable, index) => {

tableContent += "<tr class='datarow'>";

tableContent += "<td> </td>";

tableContent += "<td>" + deliverable + "</td>";

tableContent += "</tr>";

sortedObj[program][deliverable].forEach(obj => {

tableContent += "<tr class='subdatarow'>";

tableContent += "<td> </td>";

tableContent += "<td> </td>";

tableContent += "<td>" + obj.To + "</td>";

tableContent += "<td>" + obj.Date + "</td>";

tableContent += "<td>" + obj.Approved + "</td>";

tableContent += "<td>" + obj.Notes + "</td>";

tableContent += "</tr>";

});

});

});

      $("#deliverables").append(tableContent);

      $('.datarow').hide();

    $('.subdatarow').hide();

 

      $('#deliverablesTable').on('click', 'tr.breakrow', function(){

      console.log('hello');

        $(this).nextUntil('tr.breakrow').slideToggle(200);

      });

      $(document).on('click','#deliverablesTable tr.datarow', function(){

        $(this).nextUntil('tr.breakrow, tr.datarow').slideToggle(200);

      });

      })


查看完整回答
反對 回復 2022-12-22
  • 2 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號