JS 如何删除二维数组的重复项

JS 如何删除二维数组的重复项?
数组 array=[["aa","bb","cc"],["aa","bb","cc"],["b","b","v"]]

删除后数组变为array2=[["aa","bb","cc"],["b","b","v"]]

上面的代码都不是最优雅的,关键在于你对js对象模型(JSON)的理解,如果能够和JAVA的HashMap联系起来,就容易理解了。
[code="javascript"]
var arr = [["aa","bb","cc"],["aa","bb","cc"],["b","b","v"]];
var hash = {};
var result = [];
for(var i = 0, len = arr.length; i < len; i++){
if(!hash[arr[i]]){
result.push(arr[i]);
hash[arr[i]] = true;
}
}
alert(result);
[/code]

用for循环加判断,没有什么捷径的

写了一段js,应该能满足你的需要:
[code="JavaScript"]
<br> function deleteSame(){<br> var array=[[&quot;aa&quot;,&quot;bb&quot;,&quot;cc&quot;],[&quot;aa&quot;,&quot;bb&quot;,&quot;cc&quot;],[&quot;b&quot;,&quot;b&quot;,&quot;v&quot;]];</p> <pre><code>for(var i=0;i&lt;array.length;i++){ for(var j=i+1;j&lt;array.length;j++,i++) { if( equalArray(array[j],array[i])) { array.splice(j,1); } } } alert(array); } function equalArray(a1, a2) { if (a1.length != a2.length) { return false; } for (var i = 0; i &lt; a1.length; i++) { var j = isContain(a2,a1[i]); if (j &lt; 0) { return false; } else { return true; } } } function isContain(_arr,_element) { for ( var i = 0; i &lt; _arr.length; i++) { if (_arr[i] == _element) { return i; } } return -1; }; </code></pre> <p>
[/code]
调用这里的deleteSame就能返回想要的结果,
仅供参考~

亲,这样就OK~
[code="javascript"]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">


New Document




<br> var array = [[&quot;aa&quot; , &quot;bb&quot; , &quot;cc&quot;] , [&quot;aa&quot;, &quot;bb&quot; , &quot;cc&quot;] , [&quot;b&quot; , &quot;b&quot; , &quot;v&quot;]];<br> var tempObj = {};<br> for(var n in array){<br> var itemString = array[n].join(&quot;&quot;);<br> if(tempObj[itemString]){<br> array.splice(n , 1);<br> }<br> tempObj[itemString] = true;<br> }<br> alert(array);<br>



[/code]

[code="js"]
var array = [["aa" , "bb" , "cc"] , ["aa", "bb" , "cc"] , ["b" , "b" , "v"]];

var tempObj = {};

for(var n in array){

var itemString = array[n].join("");

if(tempObj[itemString]){

array.splice(n , 1);

}

tempObj[itemString] = true;

}

alert(array);

[/code]

敢问楼下这位兄台,我的除了格式乱的,哪里不太优雅呢? 呵呵。。。 完全没必要再创建个result对象撒~