使用javascript对元素列表进行分类/分组和排序的最佳方法是什么?
我有一个元素列表,其中包含一些属性,如使用javascript对元素列表进行分类/分组和排序的最佳方法是什么?,javascript,jquery,Javascript,Jquery,我有一个元素列表,其中包含一些属性,如 doc.title = 'some title' doc.category = 'book' doc.year = '2016' 其他可能的类别可以是纸张、文章等 现在,假设有两个按钮“按类别排序”和“按年份排序” 单击“按类别排序”时,列表应如下所示: Book 1. book 1 2. book 2 Paper 1. paper 1 2. paper 2 Article 1. article 1 2. article 2 单击“按年份排序”按钮
doc.title = 'some title'
doc.category = 'book'
doc.year = '2016'
其他可能的类别可以是纸张、文章等
现在,假设有两个按钮“按类别排序”和“按年份排序”
单击“按类别排序”时,列表应如下所示:
Book
1. book 1
2. book 2
Paper
1. paper 1
2. paper 2
Article
1. article 1
2. article 2
单击“按年份排序”按钮时
2016
1.
2.
3.
2015
1.
2.
等等
我想在保持html页面尽可能小的同时做到这一点。请让我知道实现这一点的最佳方法。类似的内容应该可以让您开始-代码注释中有解释(): 对于显示,您可以使用
For…of
进行分解:
for (let [category, items] of group(data, 'category')) {
console.log(`
<div class="item">
<h3>${category}</h3>
<ol>${items.map(item => `<li>${item.title}</li>`).join('')}</ol>
</div>
`);
}
for(让组(数据,'category')的[category,items]){
console.log(`
${category}
${items.map(item=>`${item.title} `).join(“”)}
`);
}
请注意,尽管我一直使用ES6,但可以很容易地将其重构为更向后兼容。共享元素列表使用类似Datatables的库。显示当前htmlcode@BarmarDatatables没有具有类别名称的功能。它具有行分组:
for (let [category, items] of group(data, 'category')) {
console.log(`
<div class="item">
<h3>${category}</h3>
<ol>${items.map(item => `<li>${item.title}</li>`).join('')}</ol>
</div>
`);
}