JS 陣列去重的13種方法

2021-10-08 11:36:26 字數 2432 閱讀 1351

首先全域性定義乙個陣列,讓我們開始由複雜到簡單的方法探索一下吧!!!

var arr1 = [11, 11, 1, 1, 2, 2, 'huo', 'huo'];
思想:建立乙個新陣列,並放入原陣列的第乙個元素。將原陣列元素依次與新陣列元素比較,元素不同就放入新陣列。最後返回新陣列,達到去重效果。

function darray2(arr) 

}if (!repeat)

}return newarr;

}console.log(darray2(arr1)) // [11, 1, 2, "huo"]

優化一下:

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

}if (!repeat)

}

思想:雙層迴圈,外層迴圈元素,內層迴圈比較元素值。值相同則刪除。

function darray1(arr) }}

return arr;

}console.log(darray1(arr1)) // [11, 1, 2, "huo"]

思想:使用sort()方法將原陣列排序。建立新陣列,第乙個元素為原陣列第乙個元素。原陣列相鄰元素進行比較,不同則放入新陣列。最後返回新陣列。

function darray3(arr) 

}return newarr;

}console.log(darray3(arr1)) // [11, 1, 2, "huo"]

思想:建立新的空陣列。遍歷原陣列,使用 indexof 方法(查詢某個元素的位置,如果不存在就返回-1)依次遍歷原陣列元素,判斷新陣列中是否含有該元素,有則放入新陣列。最後返回新陣列。

function darray4(arr) 

}return newarr;

}console.log(darray4(arr1)) // [11, 1, 2, "huo"]

思想:建立新的空陣列。遍歷原陣列,使用 includes 方法(判斷是否包含某一元素,包含返回true,不包含返回false)依次遍歷原陣列元素,判斷新陣列中是否含有該元素,有則放入新陣列。最後返回新陣列。

function darray5(arr) 

}return newarr

}console.log(darray5(arr1)) // [11, 1, 2, "huo"]

思想:利用物件的屬性不能相同的特點進行去重

function darray6(arr) ;

for (let i = 0; i < arr.length; i++) else

}return newarr;

}console.log(darray6(arr1)) // [11, 1, 2, "huo"]

思想:使用過濾器,過濾重複的元素,返回新陣列

function darray7(arr) )

return newarr

}console.log(darray7(arr1)) // [11, 1, 2, "huo"]

思想:利用hasownproperty 判斷是否存在物件屬性

function darray8(arr) ;

return arr.filter(function (item, index, arr) )

}console.log(darray8(arr1)) // [11, 1, 2, "huo"]

function darray9(arr) )

function loop(index)

loop(index - 1); //遞迴loop,然後陣列去重}}

loop(len - 1);

return array;

}console.log(darray9(arr1)) // [1, 2, 11, "huo"]

function darray10(arr)  else 

}return array;

}console.log(darray10(arr1)) // [11, 1, 2, "huo"]

function darray11(arr)
function darray12(arr) 

console.log(darray12(arr1)) //[11, 1, 2, "huo"]

let arr = [...new set(arr1)]

console.log(arr) // [11, 1, 2, "huo"]

js陣列去重五種方法

今天來聊一聊js陣列去重的一些方法,包括一些網上看到的和自己總結的,總共5種方法 es5 這種方法最簡單最直觀,也最容易理解,如下 var arr 2,8,5,0,5,2,6,7,2 var newarr for var i 0 i arr.length i console.log newarr 結...

js 陣列去重3種方法

js陣列去重的三種常用方法總結 第一種是比較常規的方法 思路 1.構建乙個新的陣列存放結果 2.for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比 3.若結果陣列中沒有該元素,則存到結果陣列中 複製 如下 array.prototype.unique1 function if re...

js陣列去重五種方法

今天來聊一聊js陣列去重的一些方法,包括一些網上看到的和自己總結的,總共5種方法 es5 這種方法最簡單最直觀,也最容易理解,如下 1 var arr 2,8,5,0,5,2,6,7,2 2 var newarr 3 for var i 0 i arr.length i 7 8 console.lo...