手寫陣列去重

2022-03-11 02:15:22 字數 1171 閱讀 4968

//本來以為挺簡單,還是天真,考慮,nan,{}.

1:arr.splice(i+1,1);//表示插入刪除元素,表示刪除i+1個元素,1表示刪除乙個

//手寫陣列去重

var arr = [1,2,3,3];

//排序的陣列 arr.sort();//排序好了就不寫了

for(var i=0;i

}

console.log(arr);

2:es6去重

去重的原理:

set()結構本身的特性:set容器 : 無序不可重複的多個value的集合體

array.from(v) : 將偽陣列物件或可遍歷物件轉換為真陣列

function

unique (arr)

var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, nan, nan,'nan', 0, 0, 'a', 'a',{},{}];

console.log(unique(arr)) //

[1, "true", true, 15, false, undefined, null, nan, "nan", 0, "a", {}, {}]6方法去重

3:es5去重

function

unique(arr)}}

return

arr;

}var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, nan, nan,'nan', 0, 0, 'a', 'a',{},{}];

console.log(unique(arr))

//[1, "true", 15, false, undefined, nan, nan, "nan", "a", , ] //nan和{}沒有去重,兩個null直接消失了

4:更多參考

手寫陣列去重,多種方法

var arr 1,23,1,1,1,3,23,5,6,7,9,9,8,5,5,5,5 function norepeat arr return arr var arr2 norepeat arr console.log arr2 1,23,3,5,6,7,9,8 var arr 1 1,2 2,3...

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

js陣列去重以及陣列內物件去重

大家在寫專案的時候一定遇到過這種邏輯需求,就是給乙個陣列進行去重處理,還有一種就是給陣列內的物件根據某乙個屬性,比如id,進行去重,下面我寫了兩個函式,都是可以達到這個效果的,乙個是純es5的去重辦法,乙個是用了es6的array.from new set 和es5的reduce來進行去重 我先定義...