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怎么实现如下所述二维数组去重的主要内容,如果未能解决你的问题,请参考以下文章

js注意事项5(数组去重)

js注意事项5(数组去重)

算法题:数组去重进阶版——JavaScript及Java实现

js 二维数组去重(续)

c语言中一个一维数组怎样去重?

PHP使用array_unique对二维数组去重处理