我想改進我的代碼。這是簡單的 javascript 代碼,我從 gitlab API 獲取一些資料,我想獲取 gitlab 組及其成員,然后我想為每個成員顯示他的組。
let accounts = []
let subGroups = await api.getSubgroups();
subGroups = subGroups.map((group) => {
const { id, name, full_path } = group;
return {
id,
name,
full_path
}
})
subGroups = subGroups.map(async (group) => {
const { id } = group;
const groupMembers = await api.getGroupMembers(id);
return { group_id: id, groupMembers };
});
subGroups = await Promise.all(subGroups);
const map = subGroups.forEach((group) => {
group.groupMembers.forEach((member) => {
accounts.push(member)
})
})
我想首先獲取組串列和組成員。然后制作一系列不同的人,然后給他們他們的小組。請問如何洗掉嵌套的foreach,甚至可能嗎?而且我還想問一下如何只將成員的必要屬性(如只有名稱和 ID)獲取到帳戶陣列
uj5u.com熱心網友回復:
如果你有一個 X by Y 資料結構,并且你需要遍歷所有元素,那基本上需要 X * Y 操作;forEach如果這是邏輯所要求的,那么使用嵌套完全沒有錯。
在現代 JS 中,有一種可用的.flatMap方法可以讓事情變得更好看,不過:
const accounts = subGroups.flatMap(group => group.groupMembers);
如果您還想僅提取 each 的某些屬性groupMember,請使用您在重新組織subGroups物件陣列時最初使用的相同技術。
const accounts = subGroups
.flatMap(group => group.groupMembers)
.map(({ name, id }) => ({ name, id }));
如果您只想保留nameandid屬性。
uj5u.com熱心網友回復:
你可以簡單地這樣做:
let accounts = [];
let subGroups = await api.getSubgroups();
subGroups.forEach(group => {
let { id } = group;
let groupMembers = await api.getGroupMembers(id);
groupMembers.forEach(accounts.push)
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411434.html
標籤:
上一篇:Python多答案回圈
下一篇:用于基本資料清理的R回圈
