目录
方法一:
思路:利用对象中属性名的唯一性,进行去重。
function unique2(arry){
//创建对象,存放以数组中元素作为属性名,出现次数作为值的对象
var json={};
var newArry=[];
for (var i =0;i<arry.length;i++){
//利用对象的唯一性
if(!json[arry[i]]){
json[arry[i]]=1;
newArry.push(arry[i]);
}else {
json[arry[i]]++;
}
}
return newArry;
}
方法二:
思路:利用数组的indexOf方法。
function unique1(arry){
var newArry = [];
for (var i=0;i<arry.length;i++){
//通过indexOf判断arr中元素是否存在于新数组中
if (newArry.indexOf(arry[i]) === -1){
newArry.push(arry[i]);
}
}
return newArry;
}
//部分浏览器不支持indexOf,于是在数组的原型链上增加indexOf方法。
if(!Array.prototype.indexOf){
Array.prototype.indexOf = function(item){
var result = -1,arry_item = null;
if(this.length == 0){
return result;
}
for (var i=0;i<this.length;i++){
arry_item = this[i];
//注意:这是全等
if (arry_item === item){
result=i;
break;
}
}
return result;
}
}