js数组去重
1、遍历数组法(这是最简单的一种)
思路:新建一个数组,遍历传入的数组,值不在新数组就加入该新数组中。
function test(arr) { var newArr = []; for(var i = 0; i < arr.length; i++) { if(newArr.indexOf(arr[i]) === -1) { newArr.push(arr[i]); } } return newArr; }
2、数组下标判断法
思路:遍历传入的数组,调用indexOf方法,如果第 i 项在当前数组中第一次出现的位置不是i,那么表示第 i 项是重复的,忽略掉,否则存入新数组。
function test1(arr) { var newArr = []; for(var i = 0; i < arr.length; i++) { if (arr.indexOf(arr[i]) === i) { newArr.push(arr[i]); } } return newArr; }
3、排序后相邻去除法
思路:借用原生数组的sort方法给传入数组排序,排序后相同的值相邻,遍历排序后的数组,如果不与新数组的最后一项相同,则存入新数组。
function test2(arr) { arr.sort(); var newArr = [arr[0]]; for(var i = 1; i < arr.length; i++) { if (arr[i] !== newArr[newArr.length - 1]) { newArr.push(arr[i]); } } return newArr; }