Golang对元素slice并去重

tydldd 2020-01-17

参考博客:

https://blog.csdn.net/qq_27068845/article/details/77407358

封装的类似PHP的array_column

// ArrayColumn 获取二维数组某一个键值
func ArrayColumn(input []map[string]interface{},columnKey string) ([]interface{}){
    if len(input)==0 {
        return []interface{}{}
    }
    result := []interface{}{}
    // for i := 0; i < len(input); i++ {
    //     result = append(result, input[i][columnKey])
    // }
    for _,v := range input {
        fmt.Print(v[columnKey])
        result = append(result, v[columnKey])
    }
    return result
}

// ArrayUnique 数组去重
func ArrayUnique(input []string)([]string){
    result := []string{}
    // 存放不重复主键
    tempMap := map[string]byte{}
    for _, e := range input{
        l := len(tempMap)
        tempMap[e] = 0
        if len(tempMap) != l{
            // 加入map后,map长度变化,则元素不重复
            result = append(result, e)
        }
    }
    return result    
}

相关推荐