javascript怎么实现如下所述二维数组去重
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript怎么实现如下所述二维数组去重相关的知识,希望对你有一定的参考价值。
有二种方式:方法一:直接定义并且初始化
var _TheArray = [["0-1","0-2"],["1-1","1-2"],["2-1","2-2"]];//定义了一个3*2的二维数组
方法二:未知长度的二维数组
var tArray = new Array(); //先声明一维for(var k=0;k<i;k++) //一维长度为i,i为变量,可以根据实际情况改变 tArray[k]=new Array(); //声明二维,每一个一维数组里面的一个元素都是一个数组 参考技术A var arr = [['a', 1], ['b', 2], ['a', 2]];
var result = arr.reduce((function ()
var map = ; return function (result, next)
var key = next[0]; if (!map[key])
map[key] = true;
result.push(next);
return result;
;
)(), []);
console.log(JSON.stringify(result));
c语言中一个一维数组怎样去重?
我定义一个一维数组~~其中有重复的元素?请问应该怎样去重?
可以定义两个数组,将原来数组的不重复的数放到新数组中就可以了.(如果需要也可以释放原来数组的内存)#include <stdio.h> main() int a[5]=1,1,2,1,2; int i,j,k=0, b[5]=0; for(i=0;i<=4;i++) for(j=0;j<=4;j++) if(a[i]!=b[j]) b[k]=a[i];k++; printf("去重后的数组为:"); for(i=0;i<=k-1;i++) printf("a[i]=%d",a[i]); 参考技术A /*只是个例子 有改进的空间 buf可能不需要 *//*空间换时间的办法可以用 位图bitmap来做 效率更高*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int a[]=0,1,0,2,3,1,5,7,2;
int func(int* array,int len)
int i=0,j=0;
int repeat=0;
int* buf=(int*)malloc(len*sizeof(int));
int* flag=(int*)malloc(len*sizeof(int));
memset(buf,0,len*sizeof(int));
memset(flag,0,len*sizeof(int));
for(i=0;i<len;i++)
repeat=0;
for(j=i+1;j<len;j++)
if(array[i]==array[j])
flag[j]=++repeat;
j=0;
for(i=0;i<len;i++)
if(flag[i]==0)
buf[j++]=array[i];
memcpy(a,buf,len*sizeof(int));
free(buf);
free(flag);
return j;
int main()
int newlen,i;
newlen=func(a,sizeof(a)/sizeof(int));
printf("new len %d \\r\\n",newlen);
for(i=0;i<newlen;i++)
printf("%d ",a[i]);
printf("\\r\\n");
参考技术B #include <stdio.h> #include <malloc.h> using namespace std ; bool isRepeat(int *arr,int len,int elem) for(int i = 0 ; i < len ; i++) if(arr[i]==elem) return true ; return false ; int* delRepeat(int *arr,int len) int *tar = (int*)malloc(sizeof(int)) ; int temp ; unsigned char i ; unsigned char j = 0 ; tar[j] = arr[0] ; for(i=1;i<len;i++) if(!isRepeat(tar,j+1,arr[i])) tar = (int*)realloc(tar,sizeof(int)*(j+2)) ; tar[++j] = arr[i] ; return tar ; int main() int a[5] = 1,2,2,3,3 ; int *b = delRepeat(a,5) ; return 0 ; 本回答被提问者采纳
以上是关于javascript怎么实现如下所述二维数组去重的主要内容,如果未能解决你的问题,请参考以下文章