陣列的去重
一. 普通雙迴圈去重
// 操作原陣列
let array =[3
,1,1
,1,'1',7
,1,3
,2,5
,4,3
,2,5
,7,8
,9,8
];for(
let i =
0, len = array.length; i}console.
log(array)
// [3, 1, "1", 7, 2, 5, 4, 8, 9]
// 定義乙個新的陣列,來接收去重後的陣列
let newarr =
;for
(let i =
0, len = array.length; iconsole.
log(newarr)
// [3, 1, "1", 7, 2, 5, 4, 8, 9]
二.利用foreach
,map
,reduce
去重
// foreach返回值是undefined
let newarr =
;array.
foreach
(each =>})
;console.
log(newarr)
// [3, 1, "1", 7, 2, 5, 4, 8, 9]
// map有返回值
let newarr =
;array.
foreach
(each =>})
;console.
log(newarr)
// [3, 1, "1", 7, 2, 5, 4, 8, 9]
// reduce,第二個引數是pre的初始值
array.
reduce
((pre,cur)
=>
// 可以自己列印看一哈pre的cur是啥子
console.
log(pre,cur)
return pre},
);console.
log(pre)
// [3, 1, "1", 7, 2, 5, 4, 8, 9]
三.利用set
和aarry.from
/…擴充套件運算子去重(一句話)
// set和map類似,都是一組key的集合,但是set不儲存value。由於key不能重複,所以,可用於去重
let newarr = array.
from
(new
set(array)
)let newarr =
[...
newset
(array)];
console.
log(newarr)
// [3, 1, "1", 7, 2, 5, 4, 8, 9]
四.自己封裝去重方法
/**
* @param
* arr 要去重的陣列
* option 如果是物件型別的陣列,那麼option就是你指定的去重的關鍵字
* @return
* newarr,去重後的陣列
*/// es6函式入參可傳入預設值,不傳值則直接取用預設值
function
removeduplicate
(arr =
,option)
else})
;}else newarr = array.
from
(new
set(arr))}
return newarr
}
陣列去重方法
1 es6提供了新的資料結構set,它類似於陣列,但是成員的值是唯一的,沒有重複的值。let arr 1,2,5,2,3,4,1,2,3,5,4,1,2,3,2,1,1,1,asd 123 123 123 asd 1,true,true,false console.log new set arr 或...
陣列去重方法
雙迴圈去重 雙重 for 或 while 迴圈是比較笨拙的方法,它的實現原理很簡單 先定義乙個包含原始陣列第乙個元素的陣列,然後遍歷原始陣列,將原始陣列中的每個元素與新陣列的每個元素進行比較,如果不重複則新增到新的陣列中,最後返回新的陣列,其缺點是如果陣列長度很長,那麼將會非常消耗記憶體 funct...
陣列去重方法
1.使用原生的filter和indexof來進行過濾和篩選。var filtered data.filter function item,index 複製 使用filter的第三個引數繫結this的值 var filtered2 data.filter function item,index,sel...