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

  • 相关阅读:
    zabbix笔记之计算型监控项详解
    zabbix笔记之磁盘IO介绍
    zabbix笔记之Graphtree配置
    zabbix笔记之告警时远程执行命令
    zabbix笔记之异常优化
    zabbix笔记之IPMI配置
    基本的sql 语句
    socket 套接字
    调用父类的三种方法
    实例属性和类属性
  • 原文地址:https://www.cnblogs.com/UncleZhao/p/13900790.html
Copyright © 2011-2022 走看看