1

我想解释一下我今天遇到的问题。

我目前正在向邮递员提出请求(可以正常工作)

我的背

getPackIntegrations: {
   rest: "GET /:id/integrations",
   resource: {
        name: "/packs/${id}",
        scope: "webmessenger-integrations:get",
        },
        cache: false,
        handler: async function (ctx) {
            const res = await ctx.call("packs.get", {
                id: ctx.params.id,
                fields: "integrations",
                query: {
                    ...ctx.params.query,
                },
            });
            return res;
        },
    },

邮递员的回应

integrations : [{integration : xxx, entity : aaa}, {integration : yyy, entity : aaa}, 
{integration : zzz, entity : aaa}, {integration : 111, entity : bbb}, {integration : 222, entity : bbb}]

我宁愿收到以下格式

[{entity: aaa, integrations : [xxx, yyy, zzz]}, {entity:bbb, integrations: [111,222]}]

我该如何解决这个问题?

谢谢帮助

4

1 回答 1

1

这段代码远非最佳,但至少应该可以解决问题。如果其他人想改进我的答案,那就太好了。

let tmp_arr = [];
let final_arr = [];

res.integrations.map(
    item => {
        if(!tmp_arr[item.entity]){
            tmp_arr[item.entity] = [];
        }

        tmp_arr[item.entity].push(item.integration);
    }
);

for(const [k,v] of Object.entries(tmp_arr)){
    final_arr.push(
        {entity: k, integrations: v}
    );
}
return final_arr;
于 2021-08-30T08:45:01.030 回答