JavaScript 数组去重
1.实现方法:
通过数组对象方法splice()可以实现数组元素的去重操作;
通过遍历数组中的每一个元素,将该元素同它之后的所有元素进行逐一比较,若相同,则删除后面的元素,达到去重的目的;
2.splice()用法:
splice(i,n,ele)方法:删除数组中指定元素,并将被删除的内容作为返回值返回;
i:表示删除开始位置的索引;
n:删除的个数;
ele:可选参数,可传递一些元素,他们将会自动插入到开始位置索引前面;
1 var arrP = ['张飞','刘备','关羽','玛利亚']; 2 var result = arrP.splice(3,1,'孙尚香','鲁班','李元芳'); 3 4 console.log(result); 5 console.log(arrP); 6 7 8 [Log] ["玛利亚"] (1) 9 [Log] ["张飞", "刘备", "关羽", "孙尚香", "鲁班", "李元芳"] (6)
3.编写去重函数
1 function distinct(arr){ 2 //遍历数组中所有元素 3 for (var i = 0; i < arr.length; i++){ 4 //遍历当前元素后的所有元素用于比较 5 for (var j = i + 1; j < arr.length; j++){ 6 //如果相等,则证明出现重复元素,则删除索引j对应的元素 7 if (arr[i] === arr[j]){ 8 arr.splice(j,1); 9 //删除索引j所对应的元素后,后方的元素向前填充,使得索引j+1对应的元素索引变为j 10 //通过j--将重新比较一次当前位置的元素,防止出现紧挨着的相同元素被忽略 11 j--; 12 } 13 } 14 } 15 return arr; 16 } 17 18 var arr1 = [1,2,2,5,'e',4,4,'m',8,5,'m',6,0,"a","e",5]; 19 var arr2 = distinct(arr1); 20 21 22 console.log(arr2); 23 24 25 26 [Log] [1, 2, 5, "e", 4, "m", 8, 6, 0, "a"] (10)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步