美文网首页
JavaScript数组去重方法

JavaScript数组去重方法

作者: 蓝馨很拽 | 来源:发表于2018-06-21 17:17 被阅读0次

基本方法

-思路:创建一个新数组,遍历原数组,喏遍历的元素在新数组不存在就添加到数组中,反之则忽略

function unArray(arr){
    var res  = [];
    for(var i = 0; i< arr.length ; i++ ){
        var repeat = false;
        for(var k = 0 ; k  < res.length; k++ ){
            if(arr[i]  === res[j] ){
              repeat = true;
              break;
          }
      }
          if(!repeat){
              res.push(arr[i]);
          }
  }
  return res
}

先排序再去重

-思路:先对数组排序,再定义一个新的数组,变量排序后的数组,喏排序后的数组元素不等于新数组的最后一个元素,则添加。

        function unArray(arr) {
            function sortNumber(a,b) {
                return a-b;
            }
            var newArr = arr.sort(sortNumber);
            var res = [];
            for (var i = 0 ; i < newArr.length ; i++){
                if (newArr[i] !== res[res.length-1 ]){
                    res.push(newArr[i]);
                }
            }
            return res;
        }

对象去重

-思路:利用对象的属性,遍历数组,喏数组元素不是对象的属性,则添加

        function unArray(arr) {
            var res = [];
            var temp = {};
            for (var i = 0 ; i < arr.length; i++){
                if (!temp[arr[i]]){
                    res.push(arr[i]);
                    temp[arr[i]] = 1;
                }
            }
            return res;
        }

filter or indexOf 方法

-思路:通过filter筛选出去重后的数组,喏indexOf方法在该元素之后再查不到该元素的位置,表示该元素不存在,符合要求。

       function unArray(arr) {
            return arr.filter(function (item,index,array) { 
                return array.indexOf(item, index+1) === -1;
            })
        }

ES6 Set

-思路:利用ES6中的Set不包含重复元素的思想,为数组创建Set对象,再将对象转换为数组

 function unArray(arr) {
            return Array.from(new Set(arr))
        }

相关文章

网友评论

      本文标题:JavaScript数组去重方法

      本文链接:https://www.haomeiwen.com/subject/xwkcyftx.html