我正试图将我的帖子数据按到档案中。
邮政对象的格式为:
var post = {
title: '',
date: '',
published: true,
categories: [],
tags: [],
slug: '',
content: ''
}
我想将它按到一系列物体中:
archives = [
{
year: 2015,
posts: [ { title: 'Fancy Title', slug: 'fancy-title', date: date }, {..etc..}, {..etc..} ]
}
{
year: 2014,
posts: [ {...yeah...}, {...ok...}, {... I got it...} ]
}
];
我有一个工作功能:
function archivePosts(posts) {
var archives = [],
archiveObj = {};
for (var post of posts) {
let file = post.create(),
year = file.date.getFullYear(),
post2Archive = { title: file.title, slug: file.slug, date: file.date };
file.storeAttributes(post);
if (!archiveObj[year]) {
archiveObj[year] = [ post2Archive ];
} else {
archiveObj[year].push(post2Archive);
}
}
for (var key in archiveObj) archives.push({ year: key, posts: archiveObj[key] });
archives.site = site;
}
但是查看帖子,创建中间archiveObj,然后循环遍历它以使其进入最终形式似乎效率低下。
所以我对你的问题可爱的堆叠器是如何失去使用archiveObj的中间步骤?
如何测试是否存在archives.year = year,然后将帖子推送到正确年份的帖子数组(如果这是我们解决问题的方式)?
一如既往地感谢...