如何匹配两个字符串数组 - 3个条件?

How to match two string arrays - 3 conditions?

我有一个合乎逻辑的问题。我需要为其业务名称和经理符合组 CSV 中的业务名称、部门和经理的每个用户打印格式为“user@email.com group@email.com”的字符串。如果有多个匹配组,则字符串应如上所示打印,但与另一组一起打印。这里最好的方法是什么?从两个 CSV 文件创建数组然后在循环中执行 if?

例子

GroupCSV:

Group,Job title,Department,Manager (email address)
somesalesgroup@dundermifflin.com,Senior Sales Manager,Sales,michael.scott@dundermifflin.com
anothersalesgroup@dundermifflin.com,Senior Sales Manager,Sales,michael.scott@dundermifflin.com

用户CSV:

First name,Last name,Location,Start date,Job title,Department,Manager (email address)
Jim,Halpert,Scranton,7/1/2021,Senior Sales Manager,Sales,michael.scott@dundermifflin.com
Dwight,Schrute,Scranton,7/1/2021,Assistant to the Regional Manager,Sales,michael.scott@dundermifflin.com

我想要这样的输出:

[jim.halpert@dundermifflin@takeaway.com somesalesgroup@dundermifflin.com]
[jim.halpert@dundermifflin@takeaway.com anothersalesgroup@dundermifflin.com]

目前我有这个

var match [][]string
    for _, u := range userRows {
        for _, g := range groupRows {
            if u[0] == g[0] {
                match = append(match, string{g, u})
            }
        }
    }

但我不确定这里可能有什么问题 (string{g, u})

我能想到的办法是将GroupCSV转成地图,然后读取UserCSV匹配地图。 如果读取CSV文件的过程是一个“for”,那么一共有两个“for”

这样解决的:

var match [][]string
    for _, u := range userRows {
        for _, g := range groupRows {
            if u[6] == g[1] && u[2] == g[0] {
                match = append(match, []string{u[5], g[2]})
            }
        }
    }