//第一種方法 var arr = [0, 1, 2, 2, 3, 44, 44, 5, 6]; function uniq(arr) { return Array.from(new Set(arr)) } console.log(uniq(arr)) console.log(arr) // ES6 var newArr = (arr) => Array.from(new Set(arr)) console.log(newArr(arr)) console.log(arr) //第二種方法 ---原生JS的去重方法,藉助一個空數組來實現去重 function xyz(arr) { let a = []; arr.forEach((item, index) => { a.indexOf(item) === -1 ? a.push(item) : '' }) return a; } console.log(xyz([1, 2, 3, 2, 3])); //第三種方法 ---數組原型鏈的去重方法 Array.prototype.uniq = function() { let a = []; this.forEach((item, index) => { a.indexOf(item) === -1 ? a.push(item) : '' }) return a; } console.log([1, 2, 1, 3].uniq()); //第四種方法 ---多數組去重 Array.from 兩類對象轉爲真正的數組 相似數組的對象( array-like object )和可遍歷( iterable )的對象 function xyz() { let a = []; for(var i = 0; i < arguments.length; i++) { Array.from(arguments[i]).forEach((item, index) => { a.indexOf(item) === -1 ? a.push(item) : '' }) } return a; } console.log(xyz([1, 2, 3, 2, 3], [2, 2, 1, 5], [6, 3, 4, 6, 7], [6, 23, 4, 6, 7]));