使用es6的set配合Array.from()方法实现 function unique1(arr) { return Array.from(new Set(arr)) } 使用双重for循环配合splice()方法实现 function unique4(arr) { if (!Array.isArray(arr)) return let newArr = [] for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { // 判断前一项和后一项是否相等 if (arr[i] === arr[j]) { // 用splice删除 arr.splice(j, 1) j-- } } } return arr } 使用push()配合includes()方法 function unique2(arr) { if (!Array.isArray(arr)) return let newArr = [] for (let i = 0; i < arr.length; i++) { if (!newArr.includes(arr[i])) { newArr.push(arr[i]) } } return newArr } 使用push()配合indexOf()方法 function unique3(arr) { if (!Array.isArray(arr)) return let newArr = [] for (let i = 0; i < arr.length; i++) { // 等于-1说明数组里面没有 if (newArr.indexOf(arr[i]) === -1) { newArr.push(arr[i]) } } return newArr }