1. 一个简单的方式, 但是又与太简单已被在面试中禁用
function my_sort(arr){ return [...new Set(arr)] }
2. 使用api的去重方式
function my_sort(arr){ let newArr = [] for(let val of arr){ if(newArr.indexOf(val) === -1){ newArr.push(val) } } return newArr }
3. 尽量不使用api的
function my_sort(arr){ // 创建一个映射实例 let map = new Map() for(let i = 0, len = arr.length; i < len; i++){ // 若该映射实例中没改映射则添加该映射 if(!map[arr[i]]){ map.set(arr[i], true) } } // 将映射中的key取出创建一个新数组返回 return [...map.keys()] }
注: 使用哪种就看大家的兴趣了!