GoLang:检查切片 1 中的项目是否包含在切片 2 中。如果包含,则删除切片 2
GoLang: Check if item from Slice 1 contains in Slice 2. If it does, remove Slice 2
我有一个字符串数组:slice1 [][]string。
我使用 for 循环获得了我想要的值:
for _, i := range slice1 { //[string1 string2]
fmt.Println("server: ", i[1]) //only want the second string in the array.
}
现在我有了另一个字符串数组:slice2 [][]string
我也使用 for 循环获取它的值:
for _, value := range output { //
fmt.Println(value) //Prints: [ 200K, 2, "a", 22, aa-d-2, sd , MatchingString, a ]
}
我想遍历 slice1 并检查 string2 是否与 Slice2 中的 "MatchingString" 匹配。如果是,则不要打印值数组。
我再次创建了一个 for 循环来执行此操作,但它不起作用:
for _, value := range slice2 {
for _, i := range slice1 {
if strings.Contains(value[0], i[1]) {
//skip over
} else {
fmt.Println(value)
}
}
}
这是一个示例代码:https://play.golang.org/p/KMVzB2jlbG
关于如何执行此操作的任何想法?谢谢!
如果我没看错你的问题,你正在尝试打印 slice2
的所有子片段,这些片段具有 属性,其中 none 的字符串是第二个元素slice1
中的一片。如果是这样,您可以通过
获得
Slice2Loop:
for _, value := range slice2 {
for _, slice2string := range value {
for _, i := range slice1 {
if slice2string == i[1] {
continue Slice2Loop
}
}
}
fmt.Println(value)
}
我有一个字符串数组:slice1 [][]string。 我使用 for 循环获得了我想要的值:
for _, i := range slice1 { //[string1 string2]
fmt.Println("server: ", i[1]) //only want the second string in the array.
}
现在我有了另一个字符串数组:slice2 [][]string 我也使用 for 循环获取它的值:
for _, value := range output { //
fmt.Println(value) //Prints: [ 200K, 2, "a", 22, aa-d-2, sd , MatchingString, a ]
}
我想遍历 slice1 并检查 string2 是否与 Slice2 中的 "MatchingString" 匹配。如果是,则不要打印值数组。
我再次创建了一个 for 循环来执行此操作,但它不起作用:
for _, value := range slice2 {
for _, i := range slice1 {
if strings.Contains(value[0], i[1]) {
//skip over
} else {
fmt.Println(value)
}
}
}
这是一个示例代码:https://play.golang.org/p/KMVzB2jlbG 关于如何执行此操作的任何想法?谢谢!
如果我没看错你的问题,你正在尝试打印 slice2
的所有子片段,这些片段具有 属性,其中 none 的字符串是第二个元素slice1
中的一片。如果是这样,您可以通过
Slice2Loop:
for _, value := range slice2 {
for _, slice2string := range value {
for _, i := range slice1 {
if slice2string == i[1] {
continue Slice2Loop
}
}
}
fmt.Println(value)
}