我如何对无序列表进行分组?我有以下无序列表,但我不想显示某些重复项,如何按PartyName将li项目分组?
@item.PartyName
和@item.subPartyName
,我需要删除除一个以外的所有内容。如果@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>
可以使用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;
}, {});