arr[j]==i 您這裡貌似 是指當數組元素 為number類型時的相等性判斷...
但是往往我們可能要對不同類型做 相等性判斷... 這個是實際應用時應該考慮的問題
1!=new number(1)的情況
null==undefined 的情況
0=="0" 的情況 等等
所以 顯然 簡單的== 和===都是不合適的.
應該獨立實現一個 equals 方法 做相等性判斷... 要根據需求 設定規則
<script>
array.prototype.del = function() {
var a = {}, c = [], l = this.length;
for (var i = 0; i < l; i++) {
var b = this[i];
var d = (typeof b) + b;
if (a[d] === undefined) {
c.push(b);
a[d] = 1;
}
}
return c;
}
alert([1, 1, 2, 3, 4, 5, 4, 3, 4, 4, 5, 5, 6, 7].del());
</script>
方法二
var arr = ["123","123","123","123","sfsdf","123","345","123","123","345","456","567","sdc"];
var str = [];
for(var i = 0,len = arr.length;i < len;i++){
! regexp(arr[i],"g").test(str.join(",")) && (str.push(arr[i]));
}
alert(str);
方法三
var x=[1,1,3,4,5,3];
var y=[];
var tarray=function(i,arr){
var yap=false;
for(var j=0;j<arr.length;j++){
if(arr[j]==i){yap=true;break;};
}
if(!yap) arr.push(i);
};
for(var t=0;t<x.length;t++){
tarray(x[t],y);
}
alert(y.length);
alert(y.tostring());