我怎样才能提高效率呢? - 对象到数组

时间:2015-12-06 11:08:12

标签: javascript arrays

我正试图将我的帖子数据按到档案中。

邮政对象的格式为:

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,然后将帖子推送到正确年份的帖子数组(如果这是我们解决问题的方式)?

一如既往地感谢...

0 个答案:

没有答案