给出如下数组es6
var arr1 = new Array('1','2','3','3','5','4','5','6','5','5','88');数组
实现对数组的去重oop
一、 双重for循环去重this
Array.prototype.Duplicate = function() { let arr = this; for(let i = 0; i < arr.length-1; i++) { for (let j = i+1; j < arr.length; j++) { if (arr[i] == arr[j]) { arr.splice(j, 1); j--; // 删除元素以后,须要将数组的长度也减1,不然没法去除掉后面相同的值. }; }; }; return arr; }
二、 利用递归调用去重spa
Array.prototype.Duplicate = function() { let arr = this; arr.sort(); function loop(index) { if (index > 1) { if (arr[index] == arr[index-1]) { arr.splice(index, 1); }; loop(index-1); }; }; loop(arr.length-1); return arr; }
三、 利用对象去重prototype
Array.prototype.Duplicate = function() { let arr = this; let obj = {} let arr2 = [] for (let i = 0; i < arr.length; i++) { if (!obj[arr[i]]) { obj[arr[i]] = true; arr2.push(arr[i]); } }; return arr2; }
四、 利用indexOfcode
Array.prototype.Duplicate = function() { let arr = this; let arr2 = [] for (let i = 0; i < arr.length; i++) { if (arr2.indexOf(arr[i]) == -1) { arr2.push(arr[i]); } }; return arr2; }
五、 利用es6 includes方法判断对象
Array.prototype.Duplicate = function() { let arr = this; let arr2 = []; for (let i = 0; i < arr.length; i++) { if (!arr2.includes(arr[i])) { arr2.push(arr[i]); } } return arr2 }
console.log(arr1.Duplicate().toString());blog
// 1,2,3,5,4,6,88递归