• 数组中去掉重复的 【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());

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

    “想要越幸运,就要越努力”
  • 相关阅读:
    Cesium中监听MOUSE_MOVE事件获取经纬度和高度
    CentOS系统重命名
    docker安装步骤
    nginx发布vue 项目
    解决git 本地代码与远程仓库冲突问题
    js通过className删除元素
    bootstrap treeview基本运用
    自定义组件模拟v-model
    使用a标签下载**.txt文件, 而不是直接打开
    mongoose 开源http库
  • 原文地址:https://www.cnblogs.com/HollyLearning/p/5269281.html
Copyright © 2020-2023  润新知