两个数组去重的方法。

第一种:

function unique (arr){

  var obj = {},newArr = [];

  for(var i = 0;i < arr.length;i++){

    var value = arr[i];

    if(!obj[value]){

      obj[value] = 1;

      newArr.push(value);

    }

  }

  return newArr;

}

这个方法把数组的值存入对象,所以,在数组存在对象队员的时候,运行失败(对象作为对象的键会被转化为字符串)。

第二种方法:

function unique (arr){
for(var i = 0;i < arr.length;i++){
for(var j = i+1;j < arr.length;j++){
if(arr[i] === arr[j]){
arr.splice(j,1);
j--}
}
}
return arr;
}
即使传入的数组包含对象,这个方法也支持,注意‘===’,但是使用了嵌套循环,性能会劣于第一种方法。
posted @ 2013-12-03 17:54  还好我是程序员  阅读(1475)  评论(0编辑  收藏  举报