javascript数组去重分析

来源:互联网 发布:广东硅谷软件学院 编辑:程序博客网 时间:2024/05/11 01:17
  1. 方法一:

核心思想:indexOf()方法和push()方法

  • indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。

    • push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

源码:

Array.prototype.unique1=function(){     //要排序的数组    var arr=[2,5,4,1,3,3,4,1];    //定义一个临时数组,存放去重后的数据    var result=[];    for(var i=0;i<arr.length;i++){    判断arr数组里元素的是否在result数组中出现        if(result.indexOf(arr[i])==-1){        //如果没出现将数据存入result数组中            result.push(arr[i]);        }    } console.log(result);}

2 . 方法二:

核心思想:排序,比较。
- 排序:将原数组利用sort()方法排序,重复元素会在相邻位置。
- 比较:检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同,不相同存入结果数组中。

源码:

Array.prototype.unique2=function(){var arr=[2,5,4,1,3,3,4,1];//将数组排序 arr.sort();将arr数组的第一个元素赋值给结果数组var result=[arr[0]];for(var t=1;t<arr.length;t++){//检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同    if(arr[t]!==result[result.length-1])    //不相同存入结果数组中        result.push(arr[t]);}console.log(result);}

这种方法缺点:改变数组元素的顺序。

0 0
原创粉丝点击