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)
    }