ASP.NET:如何对列表项进行分组

问题描述 投票:1回答:1

我如何对无序列表进行分组?我有以下无序列表,但我不想显示某些重复项,如何按PartyName将li项目分组?

  1. 如果多次出现相同的@item.PartyName@item.subPartyName,我需要删除除一个以外的所有内容。
  2. 如果@item.PartyName相同但@item.subPartyName@item.PartyName组不同。

    <ul id="treeview">
         @foreach (var item in Info)
            {
              <li class="@item.PartyName" data-expanded="true">@item.PartyName
                    <ul>
                        <li data-expanded="true">@item.subPartyName</li>
                     </ul>
               </li>
             }
      </ul> 
    
javascript jquery asp.net
1个回答
0
投票

可以使用reduce

let groupedData = arr.reduce((p, c, i, a) => {
    if (!p[c.PartyName]) p[c.PartyName] = []; //create arr if not exists
    if (p[c.PartyName].some(z => z.subPartyName === c.subPartyName)) return p; //dont add duplicate sub parties

    p[c.PartyName].push(c);
    return p;
}, {});
© www.soinside.com 2019 - 2024. All rights reserved.