如何使用Handlebars.js按状态拆分对象数组
How to split array of objects by status using Handlebars.js?
我是一个编码初学者,这是一个非常愚蠢的问题:
我有3个不同的列的任务:等待/工作/完成
带有数组的外部js文件:
var tasks = [
{
title: 'First Task',
picUrl: 'imgs/test.jpg',
status: 'pending',
},
{
title: 'Second Task',
picUrl: 'imgs/another.jpg',
status: 'running',
},
];
和模板:
<script type="text/x-handlebars-template" id="post-template">
<div class="post">
<p class="post-title">{{title}}</p>
<img src="{{picUrl}}" alt="{{picAlt}}" class="post-Pic" />
</div>
</script>
如何通过状态将它们分开,并将它们放在不同的列中?
您可以轻松创建3个新闻数组:
var filtered_tasks = {}
for (t in tasks) {
let task = tasks[t]
if (!filtered_tasks[task.status]) {
filtered_tasks[task.status] = []
}
filtered_tasks[task.status].push(task)
}
现在你有了:
filtered_tasks === {
pending: [
{
title: 'First Task',
picUrl: 'imgs/test.jpg',
status: 'pending',
}
],
running : [
{
title: 'Second Task',
picUrl: 'imgs/another.jpg',
status: 'running',
}
]
];
你可以做到:
<div class="post">
<h3>Running</h3>
{{#each filtered_tasks.running}}
<p class="post-title">{{title}}</p>
<img src="{{picUrl}}" alt="{{picAlt}}" class="post-Pic" />
{{/each}}
<h3>Pending</h3>
{{#each filtered_tasks.pending}}
<p class="post-title">{{title}}</p>
<img src="{{picUrl}}" alt="{{picAlt}}" class="post-Pic" />
{{/each}}
<h3>Done</h3>
{{#each filtered_tasks.done}}
<p class="post-title">{{title}}</p>
<img src="{{picUrl}}" alt="{{picAlt}}" class="post-Pic" />
{{/each}}
</div>
/!''未测试代码
相关文章:
- 简单地将拆分变量添加到对象中
- 想要使用Javascript将一个JSON对象拆分为多个JSON对象
- 如何在javascript中逐个拆分对象数组
- Grunt,TypeError:对象没有方法'拆分'
- 根据属性将javascript中的对象数组拆分为单独的数组
- 如何按子值将对象数组拆分为多个对象数组
- 名称对象/拆分为单独的对象或数组
- 如何使用Handlebars.js按状态拆分对象数组
- 根据年龄值将对象阵列拆分为新阵列或对象
- 根据JavaScript中的条件将对象拆分为对象数组
- 在Meteor.JS Handlebars中将对象转换为数组后无法拆分字符串
- KineticJS - 如何拆分对象和文件
- 使用拆分字符串的数组创建一个对象
- 如何在多个文件中拆分 JavaScript 对象定义
- 通过拆分字符串将字符串数组转换为对象数组
- 将数组值拆分为对象
- 按 ],[ 拆分字符串并创建 JSON 对象
- 使用 Javascript 按属性值拆分对象数组
- 随机化并拆分对象为2个数组
- 在nodejs中按字节拆分对象