如何在Pug/Jade模板中对JSON数据排序(替代Node.js端排序)
在Pug/Jade模板内实现数组排序的方法
没问题!要直接在Pug模板里对返回的popularPlaces数组按locationscore降序排序,你可以利用Pug支持的原生JavaScript表达式来完成,具体步骤如下:
首先,在模板中先对数组进行排序处理(推荐先复制原数组再排序,避免修改原始数据),然后遍历排序后的结果:
// 先复制数组并按locationscore降序排序 - const sortedPopularPlaces = [...popularPlaces].sort((a, b) => b.locationscore - a.locationscore) // 遍历排序后的数组展示 each place in sortedPopularPlaces .h2 Top Popular Places #{place.placename}
代码说明:
[...popularPlaces]:用扩展运算符复制原数组,避免sort()方法原地修改原始的popularPlaces数据(如果不需要保留原数组,也可以直接用popularPlaces.sort(...))sort((a, b) => b.locationscore - a.locationscore):JavaScript数组的排序方法,通过比较两个元素的locationscore值,实现降序排列;如果需要升序,只需把表达式换成a.locationscore - b.locationscore
用你提供的示例数据测试,排序后展示的顺序会是:
- Mahattan Bakery(0.899802)
- Modern Stop(0.8734)
- Baker's Bakery(0.8123)
- Combo Boo(0.808973)
- Next Coffee(0.807121)
- Mainland Cafe(0.801271)
完全符合你想要的按评分降序展示的需求~
内容的提问来源于stack exchange,提问作者floss
相关产品推荐
相关产品推荐

