golang数组去重&切片去重(代码片段)

enumx enumx     2023-04-18     346

关键词:

方法一:
定义一个新切片(数组),存放原数组的第一个元素,然后将新切片(数组)与原切片(数组)的元素一一对比,如果不同则存放在新切片(数组)中。

package main

import "fmt"

func main() 
    var arr = []string"hello", "hi", "world", "hi", "china", "hello", "hi"
    fmt.Println(RemoveRepeatedElement(arr))



func RemoveRepeatedElement(arr []string) (newArr []string) 
    newArr = make([]string, 0)
    for i := 0; i < len(arr); i++ 
        repeat := false
        for j := i + 1; j < len(arr); j++ 
            if arr[i] == arr[j] 
                repeat = true
                break
            
        
        if !repeat 
            newArr = append(newArr, arr[i])
        
    
    return

方法二:
先将原切片(数组)进行排序,在将相邻的元素进行比较,如果不同则存放在新切片(数组)中。

package main

import "fmt"

func main() 
    var arr = []string"hello", "hi", "world", "hi", "china", "hello", "hi"
    fmt.Println(RemoveRepeatedElement(arr))



func RemoveRepeatedElement(arr []string) (newArr []string) 
    newArr = make([]string, 0)
    sort.Strings(arr)
    for i := 0; i < len(arr); i++ 
        repeat := false
        for j := i + 1; j < len(arr); j++ 
            if arr[i] == arr[j] 
                repeat = true
                break
            
        
        if !repeat 
            newArr = append(newArr, arr[i])
        
    
    return

上面两种方法,第一种的效率要高于第二种的。可以通过测试比较大的数组来观察两种的执行速度

js数组去重(代码片段)

数组去重letarray=[1,2,3,12,2,3]//1.Array.from&Set||...&newSet//letarr=Array.from(array)//letarr=newSet(array)//newSet实例是一个对象letarr=Array.from(newSet(array))console.log(arr)leta= 查看详情

对象数组去重(多属性)(代码片段)

1、对象数组去重(支持多属性)functionfilters(arr)//存储过滤后数据constresArr=[]for(constiofarr)//检查是否已经存在if(resArr.find(r=>r.itemId===i.itemId&&r.memberType===i.memberType))continue//若不存在,添加到过滤后数据中resArr.pu 查看详情

数组嵌套对象去重(代码片段)

1letobj=;2newArr=newArr.reduce((cur,next)=>3obj[next.id]?‘‘:(obj[next.id]=true&&cur.push(next));4returncur;5,[]);//设置cur默认类型为数组,并且初始值为空的数组 我在群里小伙伴,好多人都在问,我就记下来吧 查看详情

数组去重(代码片段)

classsolutionpublic:intremoveDuplicate(vector<int>&nums)if(nums.empty())return0;intindex=0;for(inti=0;i<nums.size();i++)if(nums[index]!=nums[i])nums[++index]=nums[i];returnindex+1;; 查看详情

golang对元素slice并去重(代码片段)

参考博客:https://blog.csdn.net/qq_27068845/article/details/77407358封装的类似PHP的array_column//ArrayColumn获取二维数组某一个键值funcArrayColumn(input[]map[string]interface,columnKeystring)([]interface)iflen(input)==0return[]interfaceresult:=[]interface//fori:=0;i<len(input... 查看详情

数组判断含有某对象权重加一去重(代码片段)

functionformatDataf(data)varformatArray=[];data.forEach(function(item)item.value=1;varsarry=formatArray.some(function(itemarr)//判断是否有重复的if(item.x==itemarr.x&&item.y==itemarr.y)itemarr.valu 查看详情

数组去重(代码片段)

个人总结数组去重letary=[2,6,5,5,99,65,5,2,989,23,65,6]functiongetDiff(arr)letobj=for(leti=0;i<arr.length;i++) lettemp=arr[i] if(obj[temp]===temp&&temp!==undefined) arr.splice(i,1) i-- //数组长度变短索引回到前一位 continue//跳出本次循环 obj[temp]=tempobj=nullret... 查看详情

markdown数组去重(代码片段)

查看详情

javascript数组去重(代码片段)

查看详情

数组去重(代码片段)

在JavaScript中,数组常常被用到,自然数组去重在项目中就会经常碰到了,本文总结了一些常见的数组去重方法。ES6Set去重<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>数组去重</title></head><body... 查看详情

数组去重(代码片段)

js://数组去重vararray=[‘abc‘,‘abc‘,‘sss‘,‘2‘,‘d‘,‘t‘,‘2‘,‘sss‘,‘f‘,‘22‘,‘d‘]//定义一个空数组vars=[]//对数组进行循环for(vari=0;i<array.length;i++)//对数组使用indexOf方法判断if(s.indexOf(array[i])===-1)//去重后数据push在... 查看详情

数组去重(代码片段)

今天整理了一下数组去重的几种方法:数组去重方法一:使用双层for循环vararr=[2,2,2,2,3,4,6,12,6,3,12,1,2,3,2,6];varnewArr=[arr[0]];//存放原数组的第一个元素for(vari=1;i<arr.length;i++)//从第二个元素遍历varflag=true;for(varj=0;j<newArr.length;j++)/ 查看详情

数组去重(代码片段)

今天整理了一下数组去重的几种方法:数组去重方法一:使用双层for循环vararr=[2,2,2,2,3,4,6,12,6,3,12,1,2,3,2,6];varnewArr=[arr[0]];//存放原数组的第一个元素for(vari=1;i<arr.length;i++)//从第二个元素遍历varflag=true;for(varj=0;j<newArr.length;j++)/ 查看详情

javascript[数组去重]#javascript(代码片段)

查看详情

javascript[数组去重]#javascript(代码片段)

查看详情

golang✔️走进go语言✔️第十二课结构体&切片(代码片段)

【Golang】✔️走进Go语言✔️第十二课结构体&切片概述结构体定义结构体切片切片初始化概述Golang是一个跨平台的新生编程语言.今天小白就带大家一起携手走进Golang的世界.(第12课)结构体结构体(Struct)指的是一种数据结构,由... 查看详情

golang✔️走进go语言✔️第十二课结构体&切片(代码片段)

【Golang】✔️走进Go语言✔️第十二课结构体&切片概述结构体定义结构体切片切片初始化概述Golang是一个跨平台的新生编程语言.今天小白就带大家一起携手走进Golang的世界.(第12课)结构体结构体(Struct)指的是一种数据结构,由... 查看详情

好像不是最全的数组去重方法(代码片段)

这一篇文章,我们讲解一下数组去重。1.最简单粗暴地方式,两重for循环letarr=[9,5,6,5,‘1‘,‘1‘,true,5,true];for(vari=0;i&lt;arr.length;i++)for(varj=i+1;j&lt;arr.length;j++)if(arr[i]===arr[j])arr.splice(j,1);console.log(arr);//[9,5,6,"1",true,undefined,null,NaN... 查看详情