首页 > 解决方案 > 将对象数组的数组注入到对象数组中

问题描述

所以我的 js 文件中有以下函数:

function get_array_of_post_objects(slug)
{
    let items = [];
    wp.api.loadPromise.done(function () {
        const Posts = wp.api.collections.Posts.extend({
            url: wpApiSettings.root + 'menus/v1/locations/' + slug,
        });
        const all_posts = new Posts();
        all_posts.fetch().then((posts) => {
            console.log(posts.items);
            items.push(posts.items);
        });
    });
    console.log(items);
    return items;
}

all_posts.fetch调用内部,我有一个console.log(posts.items)输出以下完美的对象数组: 在此处输入图像描述


问题
在我的退货中,我有一个return items我想要返回的项目,但它以对象数组的形式返回它们,这不是我想要的,如下所示: 在此处输入图像描述

有人可以告诉我我做错了什么吗?我最终希望我的返回只返回一个对象数组而不是一个对象数组 - 感谢所有帮助。

标签: javascriptarraysjavascript-objects

解决方案


在您的代码中,您将posts.items(已经是一个对象数组)推入项目(初始化为一个空数组)。

你需要一个数组来保存posts.items吗?相反,你可以简单地说items = posts.items,因为 posts.items 已经是一个对象数组,这就是你所说的你需要的。

function get_array_of_post_objects(slug)
{
    let items;
    wp.api.loadPromise.done(function () {
        const Posts = wp.api.collections.Posts.extend({
            url: wpApiSettings.root + 'menus/v1/locations/' + slug,
        });
        const all_posts = new Posts();
        all_posts.fetch().then((posts) => {
            console.log(posts.items);
            items = posts.items;
        });
    });
    console.log(items);
    return items;
}

推荐阅读