陣列的去除在真實專案中是非常的常用,那麼在這裡總結一下物件陣列及基本型別陣列的去重方法,主要利用了物件的鍵值是唯一的乙個特性。
1:去重方法一利用陣列的索引對應的值。
let arr = [2,3,3,3,2,4,2];
console.log("arr is a instance of arr ",(typeof arr));
let str = "asdfasdf";
console.log("str is an instance of array",str instanceof array);
console.log("str is an instance of string ?",(typeof str) === 'string');
function uniqforbasic(array)
}temp.push(array[i]);
index.push(i);
}return temp;
}let res = uniqforbasic(arr);
console.log("res is ",res);
2:利用物件的鍵值是唯一的這個特性,但是缺點是查重後的陣列元素都為字串型別,如果是需要number型別或者其他型別的話需要自己轉換
//陣列去重方法二 缺點鍵值都是字串對於數字陣列需要進行特殊處理
function uniqbyobj(array)
for(let i = 0;i < len;i++)`] = true;
}console.log("tempjson is ",tempjson);
return object.keys(tempjson);
}let res2 = uniqbyobj(arr);
console.log("res is ",res2);
3:物件陣列的去重方法:把物件陣列的每一項的物件作為乙個物件的鍵值匯出就得出去重後的數值。
let objarr = [,,
,]//物件陣列的去重
function uniqobjinarray(objarray);
let res = ;
for(let i = 0;i < len;i++)
console.log("tempjson is ",tempjson);
let keyitems= object.keys(tempjson);
for(let j = 0;j < keyitems.length;j++)
return res;
}let res3 = uniqobjinarray(objarr);
console.log("res3 is ",res3);
4:利用陣列的filter()方法和indexof()方法去重:
let filterarr = temparr.filter((value,index) => ;
// objtemp[objarr[i]] = true;
if(!objtemp[objarr[i]])
}let eet = new date().gettime();
console.log("res.lenght is ",res.length,eet - sst, "ms",objarr.length);6:利用set效率也還行:
let st = new date().gettime();
let tarr = array.from(new set(arr));
let et = new date().gettime();
// tarr.sort();
console.log("set 去重耗時:",tarr.length,et - st,"ms");
7: 物件陣列去重:
// 物件陣列去重
let obj =[,,
]let object = {};
let objres = obj.reduce((item,next) => ,);
console.log("objres si ",objres);
8:物件深複製方法:
function deepclone(obj)
else if (obj instanceof object) ;
}else
for (let item in obj)
return newobj;
}
**有不對的地方歡迎各位同仁指正謝謝! 陣列去重的方法總結
實現思路 新建乙個陣列,遍歷要去重的陣列,當值不在新陣列的時候 indexof 為 1 就加入該新陣列中 function unique arr return newarr var arr 1,2,2,3,4,4,5,1,3 var newarr unique arr console.log new...
陣列去重的方法總結
方法一 var arr 1,a a b d e 1,0 array.prototype.unique1 function i 4 if repeat return res var arr 1,a a b d e 1,0 console.log arr.unique1 方法二 如果物件屬性不存在,不會...
陣列 物件去重
var arr 1,2,3,1,3,是是 是是 2 測試 服務 測試 nan,nan,服務 服務 arr new set arr console.log arr set 是es6新加的集合,集合中的值不會重複。操作符 會將可遍歷物件,轉換為陣列 let arr 1,2,2,3,4,4,4 let s...