zoukankan      html  css  js  c++  java
  • js删除数组中重复的元素

     1、方法一

    将数组逐个搬到另一个数组中,当遇到重复元素时,不移动,若元素不重复则移动到新数组中

     1 function unique(arr){
     2         var len = arr.length;
     3         var result = []
     4         for(var i=0;i<len;i++){
     5             var flag = true;
     6             for(var j = i;j<arr.length-1;j++){
     7                 if(arr[i]==arr[j+1]){
     8                     flag = false;
     9                     break;
    10                 }
    11             }
    12             if(flag){
    13                 result.push(arr[i])
    14             }
    15         }
    16         return result;
    17     }

    2、方法二

    遍历数组arr,把元素分别放入另一个数组result中,判断arr中的元素在result中是否存在,不存在即加入temp中

    1 function unique(arr){
    2         var result = [];
    3         for(var i=0;i<arr.length;i++){
    4             if(result.indexOf(arr[i])==-1){
    5                 result.push(arr[i])
    6             }
    7         }
    8         return result;
    9     }

    3、方法三

    将数组的值作为对象的属性,通过对象的属性值来判断数组是否重复,若该项不重复则给对象对应属性值赋为true,便于之后的判断,并将数据项加入结果集中

     1 function unique(arr) {
     2         var result = [];
     3         var obj = {};
     4         for(var i=0;i<arr.length;i++){
     5             if(!obj[arr[i]]){
     6                 result.push(arr[i]);
     7                 obj[arr[i]] = true;
     8             }
     9         }
    10         return result
    11     }

    也可以通过判断对象中是否包含该属性来去重,此时对象属性的值可以任意但必须有值,否则会认为该属性不存在

     1 function unique(arr) {
     2         var result = [];
     3         var obj = {};
     4         for(var i=0;i<arr.length;i++){
     5             if(!obj.hasOwnProperty(arr[i])){// if(!(arr[i] in obj))
     6                 result.push(arr[i]);
     7                 obj[arr[i]] = 0;
     8             }
     9         }
    10         return result
    11     }

      

    4、方法四

    将数组的值赋给另一个数组的键,此时重复的元素都被删除,然后取新数组的键作为去重后的结果

     1 function unique(arr){
     2         var result = []
     3         var temp = []
     4         for(var i in arr){
     5             temp[arr[i]] = 1;
     6         }
     7         for(var i in temp){
     8             result.push(i)
     9         }
    10         return result
    11     }
  • 相关阅读:
    Zend Studio
    mysql workbench
    phpmyadmin
    navicat for mysql
    phpstorm
    django中 debug-toolbar插件 crm项目补充
    clean_data 和 instance的区别
    elasticsearch 第一章 初识elasticsearch
    爬虫第七章 scrapy中间件 + 基于crawlSpider全站爬取网络数据
    爬虫第六章 scrapy的具体应用 5大核心组件 scrapy持久化存储 请求传参
  • 原文地址:https://www.cnblogs.com/lhyhappy365/p/5912460.html
Copyright © 2011-2022 走看看