如何匹配两个字符串数组 - 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]})
}
}
}
我有一个合乎逻辑的问题。我需要为其业务名称和经理符合组 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]})
}
}
}