如何通过另一种格式 React 更改地图的结果
how to change the result of a map by another format React
我想解释一下我今天遇到的问题。
我目前正在向邮递员发出请求(工作正常)
我的背影
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]}]
我该如何解决这个问题?
谢谢帮助
这段代码远非最佳,但至少应该可以解决问题。如果有人想改进我的回答,那就太好了。
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;
我想解释一下我今天遇到的问题。
我目前正在向邮递员发出请求(工作正常)
我的背影
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]}]
我该如何解决这个问题?
谢谢帮助
这段代码远非最佳,但至少应该可以解决问题。如果有人想改进我的回答,那就太好了。
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;