項目裏面有個需求,是檢測兩個數組裏面是否有相同的重複項,有則返回 true
,沒有則返回 false
,而且不須要獲取重複項的數據。
若是是須要獲取重複項的數據,那確定須要遍歷循環,可是既然只要簡單知道是否重複,就沒有必要一個個去遍歷,直接用 ES6 的新數據類型 Set 便可,由於他有一個特性是每一個元素都不重複,所以常常被用來作數組去重。
經過它的這個特性,天然也能夠檢測重複,將須要檢測的兩個數組合併成一個 Set,若是長度小於兩個數組的長度之和,那麼確定存在重複項。數組
function isInArry(arr1, arr2){ let new_arr = new Set([...arr1, ...arr2]) return new_arr.size < (arr1.length + arr2.length) }
let arr1 = [1,2,3] let arr3 = [2,3,7] function filterArry(arr){ return arr.filter(i => arr.indexOf(i) !== arr.lastIndexOf(i)) } filterArry(arr1.concat(arr2))
今天又有一個新的需求dom
function shuffleArray(arr){ let m = arr.length while (m>1) { let index = Math.floor(Math.random() * m--) [arr[m], arr[index]] = [arr[index], arr[m]] } return arr }