zoukankan      html  css  js  c++  java
  • 【Golang】map 函数如何进行删除内部元素呢

    map 函数如何进行删除内部元素呢?

    • 一是使用 append 进行排除不要的元素,重组需要的(案例一);
    • 而是用 index 索引进行排除(案例二),常规我一般用这种方法通用;

    案例一: append for 循环选中需要的

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	users := []map[string]string{
    		{"id": "1", "name": "test1", "contact": "11234", "address": "Guangdong"},
    		{"id": "2", "name": "test2", "contact": "21234", "address": "Shanghai"},
    		{"id": "3", "name": "test3", "contact": "31234", "address": "Hangzhou"},
    		{"id": "4", "name": "test4", "contact": "41234", "address": "Shenzhen"},
    	}
    	fmt.Println(users)
    	id := "1"
    	// 方法1:
    	// 把不需要删除 => 定义新的切片 => users,使用 append 进行重新组合
    	// tempUsers := []map[string]string{}
    	tmpUsers := make([]map[string]string, 0, len(users)-1) // 定义一个临时的 map 函数
    	for _, user := range users {
    		if user["id"] != id { //这里把不等于的 id 一个一个写入 tmpUsers,
    			// fmt.Println(user)
    			tmpUsers = append(tmpUsers, user)
    		}
    		// users = tmpUsers
    	}
    	fmt.Println(tmpUsers)
    
    }
    

    案例二:append index 索引排除法

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	users := []map[string]string{
    		{"id": "1", "name": "test1", "contact": "11234", "address": "Guangdong"},
    		{"id": "2", "name": "test2", "contact": "21234", "address": "Shanghai"},
    		{"id": "3", "name": "test3", "contact": "31234", "address": "Hangzhou"},
    		{"id": "4", "name": "test4", "contact": "41234", "address": "Shenzhen"},
    	}
    	fmt.Println(users)
    	id := "1"
    	tmpUsers := make([]map[string]string, 0, len(users)-1) // 定义一个临时的 map 函数
    	for idx, user := range users {
    		if user["id"] == id {
    			// fmt.Println(idx)
    			tmpUsers = append(users[:idx], users[idx+1:]...)
    		}
    	}
    	fmt.Println(tmpUsers)
    
    }
    
    

    结果示例:

    image-20201030101013875

  • 相关阅读:
    css点滴3—5种方式实现圆环
    css点滴2—六种方式实现元素水平居中
    css点滴1—八种方式实现元素垂直居中
    当我们在讨论CQRS时,我们在讨论些神马?
    CSDN屏蔽广告
    手撸一套纯粹的CQRS实现
    【转】CAP 定理的含义
    【转】浅谈命令查询职责分离(CQRS)模式
    Castle DynamicProxy基本用法(AOP)
    【转】面向对象设计的SOLID原则
  • 原文地址:https://www.cnblogs.com/UncleZhao/p/13900790.html
Copyright © 2011-2022 走看看