企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
#### **一、简单的去重方法** - 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 - IE8以下不支持数组的indexOf方法 ``` function uniq(array){ var temp = []; //一个新的临时数组 for(var i = 0; i < array.length; i++){ if(temp.indexOf(array[i]) == -1){ temp.push(array[i]); } } return temp; } var aa = [1,2,2,4,9,6,7,5,2,3,5,6,5]; console.log(uniq(aa)); ``` #### **二、排序后相邻去除法** - 给传入数组排序,排序后相同值相邻, - 然后遍历时,新数组只加入不与前一值重复的值。 - 会打乱原来数组的顺序 ``` function uniq(array){ array.sort(); var temp=[array[0]]; for(var i = 1; i < array.length; i++){ if( array[i] !== temp[temp.length-1]){ temp.push(array[i]); } } return temp; } var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5]; console.log(uniq(aa)); ``` #### **三、双重循环法** ``` function uniq(array) { var temp = []; var index = []; var l = array.length; for (var i = 0; i < l; i++) { for (var j = i + 1; j < l; j++) { if (array[i] === array[j]) { i++; j = i; } } temp.push(array[i]); index.push(i); } console.log(index); return temp; } var aa = [1, 2, 2, 3, 5, 3, 6, 5]; console.log(uniq(aa)); ``` #### **indexof方法二** * 利用indexOf检测元素在数组中第一次出现的位置是否和元素现在的位置相等,如果不等则说明该元素是重复元素. * filter()方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。 ``` function uniq(arr) { return Array.prototype.filter.call(arr, function (item, index) { return arr.indexOf(item) === index; }); } var aa = [1, 2, "2", 4, 9, "a", "a", 2, 3, 5, 6, 5]; console.log(uniq(aa)); ```