gpt4 book ai didi

javascript - 根据匹配的内容合并数组的内容

转载 作者:行者123 更新时间:2023-12-02 15:54:50 25 4
gpt4 key购买 nike

我正在编写一些 Google Apps 脚本来获取每个 Google 群组并列出其成员,然后将其输出到 Google 表格。目前,我正在抓取每个组和电子邮件地址并将其推送到 memberArr,但是我随后想“合并”相关信息。

例如,如果我有 X 组,组 1 有 4 个成员(Foo、Bar、Baz 和 Quux)- 目前,它将输出为

[ [ 'Group 1', 'Foo' ],
[ 'Group 1', 'Bar' ],
[ 'Group 1', 'Baz' ],
[ 'Group 1', 'Quux' ] ]

但我想让它输出为 [Group 1, Foo, Bar, Baz, Quux]
也就是把有共同Group的memberArr的内容合并

到目前为止,这是我的代码:

function getAllGroupsTEST() {
const groupArr = [];
let gPageToken;
let gPage;

do {
gPage = AdminDirectory.Groups.list({
customer: "my_customer",
maxResults: 100,
gPageToken
});
const groups = gPage.groups;

if (groups) {
groups.forEach(({email}) => {
const groupEmail = email;
groupArr.push(groupEmail);
});
}

gPageToken = gPage.nextPageToken;
} while (gPageToken);

console.log(`LOGGING GROUPS:\n\n${groupArr}`);
const memberArr = [];
let mPageToken;
let mPage;

groupArr.forEach(group => {
mPage = AdminDirectory.Members.list(group,{
customer: "my_customer",
maxResults: 500,
mPageToken
})
const members = mPage.members;
if (members) {
// console.log(`LOGGING ${members.length} MEMBERS FOR ${group}\n\n${members}`)
members.forEach(member => {
// console.log(`MEMBER: ${member.email} IS IN GROUP ${group}`)
memberArr.push([group, member.email])
})
}
})
// console.log(`COUNTED ${groupArr.length} GROUPS`)
// console.log(memberArr)
}

如有任何帮助,我们将不胜感激!

编辑:更新为按原样显示 memberArr 而不是表格格式。

最佳答案

我建议将对象中的数组转换为数组,然后以这种方式返回数组:

var arr = [
['group1','a'],
['group1','b'],
['group2','c'],
['group2','d'],
['group3','e']
]

var obj = {}
for (var a of arr) {
try { obj[a[0]].push(a[1]) }
catch(e) { obj[a[0]] = [a[1]] }
}
console.log(obj);

var new_arr = [];
for (var group in obj) {
new_arr.push([group, ...obj[group]])
}
console.log(new_arr);

输出:

[ [ 'group1', 'a', 'b' ], [ 'group2', 'c', 'd' ], [ 'group3', 'e' ] ]

关于javascript - 根据匹配的内容合并数组的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71691345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com