這次帶給大家JS去除數組中重複項的方法,JS去除數組中重複項的注意事項有哪些,下面就是實戰案例,一起來看一下。
# 數組去重的方法很多,不同的方法的效率也不相同。如前面文章JS實作的陣列去除重複資料演算法小結中就總結分析了4種實作方法。這裡介紹一種高效能數組去重的方法:根據JS物件的特性去除數組中重複項的方法。
一、JS物件的特性(本文所使用的特性):key總是唯一
引例:說明物件key值的唯一性,即當重新給js已有屬性賦值的時候,實際上是覆寫了key,而不是新建了key
var t={name:'张三',age:20};//定义个js对象 console.log(t.name);//控制台输出:张三 //注意:此时对象t有两个属性:name、age t.name='李四'; console.log(t.name);//控制台输出:李四 //注意:此时对象t依然有两个属性:name、age
# 二、陣列去重步驟解析
# 分為兩個步驟:
1. 把要去重的陣列轉換成一個js的物件並回傳。 轉換規則:把陣列中的值變成js物件當中的key,然後value給任意值;
2. 把步驟1中的物件再還原成數組,物件的key當作數組中的元素。
三、陣列去重實作
var arr=[1,2,3,4,5,23,4,2,4,3]; //1.把数组装换成对象,数组的元素作为对象的key,然后返回对象 function toObject(ac_array){ var obj={};//私有的对象 for (var i=0;i<ac_array.length;i++) { obj[ac_array[i]] = true; } console.log(obj);//Object {1: true, 2: true, 3: true, 4: true, 5: true, 23: true} return obj; } //2.把对象的key获取出来作为数组的元素,然后返回数组 function keys(ac_obj){ var arr = []; for(var item in ac_obj){ if(ac_obj.hasOwnProperty(item)){ arr.push(item); } } console.log(arr);//["1", "2", "3", "4", "5", "23"] return arr; } //综合 function uniq(ac_array){ return keys(toObject(ac_array)); } //测试 var uniq_array=uniq(arr); console.log(uniq_array);//["1", "2", "3", "4", "5", "23"]
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是JS去除數組中重複項的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!