zoukankan      html  css  js  c++  java
  • 数组中去掉重复的 【js笔记】

    关于一个固定的已知的数组例如:var arr = ['name','OK','123','n','look','777','n','123','name',1,3,5,1,'OK'];

    那么问题来了,我们怎么能去掉重复的字符串或者数字,得到新的数组呢!

    方法①:

    function takeRepetition_1(arr){
      var data= {};  //这里会遍历data的arr[i]属性 因为data为空 理所当然返回undefined
      var result = [];
      for(var i=0;i<arr.length;i++){
        if( !json[arr[i]] ){
          json[arr[i]] = 1;  //所以当if满足!undefined 即为true的时候 给data的arr[i]的属性的值设定为1
          result.push( arr[i] ); //然后放入结果数组里 所以当arr数组中有重复的值时 if不满足条件 就不会添加到数组了
        }
      }
      return result;
    }
    console.log(unqiue(arr));


    方法②:
    Array.prototype.takeRepetition_2 = function() {  //两次循环遍历数组,取值做等比比较
      var a = [];
      var l = this.length;
      for(var i = 0 ;i< l; i++)
        for(var j = i + 1 ;j < l; j++) {
          if (this[i] === this[j]) {

            j = ++i

          }
        }
        a.push(this[i]);
      }
      return a;
    }
    console.log(arr.takeRepetition_2());

    方法③:

    Array.prototype.takeRepetition_3 = function(){

      var n = []; //一个新的临时数组
      for(var i = 0; i < this.length; i++) {  //如果当前数组的第i已经保存进了临时数组,那么跳过,否则把当前项push到临时数组里面
        if (n.indexOf(this[i]) == -1) n.push(this[i]);
      }
      return n;
    }
    console.log(arr.takeRepetition_3());

    好啦 欢迎大家有不同的方法一起讨论哦!~~~~~

    “想要越幸运,就要越努力”
  • 相关阅读:
    Java 8 Lambda 表达式
    OSGi 系列(十二)之 Http Service
    OSGi 系列(十三)之 Configuration Admin Service
    OSGi 系列(十四)之 Event Admin Service
    OSGi 系列(十六)之 JDBC Service
    OSGi 系列(十)之 Blueprint
    OSGi 系列(七)之服务的监听、跟踪、声明等
    OSGi 系列(六)之服务的使用
    OSGi 系列(三)之 bundle 事件监听
    OSGi 系列(三)之 bundle 详解
  • 原文地址:https://www.cnblogs.com/HollyLearning/p/5269281.html
Copyright © 2011-2022 走看看