这里介绍2中方式:
js代码如下
var arr=[1,7,3,2,1,4,12,3,"3",3] function compare(arr) { var result = [], isfl; for (var i = 0; i < arr.length; i++) { isfl= false; for (var j = 0; j < result.length; j++) { if (arr[i] ===result[j]) { isfl = true; break; } } if (!isfl) { result.push(arr[i]); } } return result; } var dw=[]; dw=compare(arr); console.log(dw); function compare2(arr) { var result = [], hash = {},type="",item; for (var i = 0; i<arr.length; i++) { item = arr[i]; type = typeof(item); if (!hash[item+type]) { result.push(item); hash[item+type] = true; } } return result; } var dw2=compare2(arr); console.log(dw2);
注意:因为存在类型不同所以要用===,而第二种方式中,hash()只比较值,不比较其类型,所以需要单独抽出其类型,一起比较。才能达到所需目的
效果如图显示: