项目里面有个需求,是检测两个数组里面是否有相同的重复项,有则返回 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 }