2013-09-16 151 views
0

这个问题出现了很多,但我的具体情况似乎没有被任何我回顾的答案覆盖。我有一个多维数组与我想删除一些重复数组。删除多维重复数组

[ 
    [8, 12], 
    [8, 17], 
    [8, 92], 
    [8, 12] 
] 

[8, 12]出现两次。我怎样才能删除这个重复?

+2

你尝试过什么吗?你有性能限制和非常大的数组吗? –

+2

您可以遍历它们,创建一个新数组,并在添加它之前检查每个元素是否存在于新数组中。 – Ibu

+3

你认为还有其他SO帖子吗?他们都应该工作,只有你需要改变比较,以便它认为相似(但不相同)的数组相等。 – Bergi

回答

2

什么如下:

var array1 = [[8,12],[8,17],[8,92],[8,12]]; 
var array2 = new Array(); 

for (var i=0; i<array1.length; i++) { 
var e1 = array1[i]; 
var exists = false; 
for (var j=0; j<array2.length; j++) { 
    if (array2[j][0] == e1[0] && array2[j][1] == e1[1]) exists = true; 
} 
if (exists == false) { 
    array2[array2.length] = e1; 
} 
} 

的数组2现在阵列1没有重复。这对于实时游戏编程应该是太慢了,但它应该工作。我很抱歉,如果我写错了什么,这不是故意的。我没有测试代码。

+1

它工作:)(复制粘贴在铬的JavaScript控制台) –