zoukankan      html  css  js  c++  java
  • js给数组去重写法

    数组为 var list =['A','B','A'];
    
    法一:常规做法,新建list,给list添加元素,添加前判断是否包含
    var removeRepeatItem = function(list){
      var newList = [];
      for(var i=0;i<list.length;i++){
        if(newList.indexOf(list[i])==-1){ //不包含
          newList.push(list[i]);
           }
       }
      return newList;
    }
    
    法二、两次遍历同一数组,比对是否相同,先排除比对自己,然后对相同的后者删除,同时使数组的大小减一
    
    var removeRepeatItem = function(list) {
      var listLen = list.length;
      for(var i=0;i<listLen;i++){
        for(var j=0;j<listLen;j++){
          if(i!=j){ //不跟自己比较
            if(list[i]==list[j]){
              list.splice(j, 1);//删除后者
              listLen--;  //同时遍历次数减一
            }
              }
          }
       }
      return list;
    }
    
    
    法三、利用对象键唯一的原理,将数组元素的值作为对象的键名称(或者键名称的一部分),元素的值作为相应键的值,这样便得到了新的对象。
    var removeRepeatItem = function(list) {
      var newList = [],
      temp = {};
      //数租 => 对象 (利用键唯一原理去重)
      for (var i = 0; i < list.length; i++) {
        temp[typeof(list[i]) + list[i]] = list[i];
       }
      //对象 => 数组
      for (var j in temp) {
        newList.push(temp[j]);
       }
      return newList;
    }
      
  • 相关阅读:
    rsync使用
    文件系统、mkdir、touch、nano、cp笔记
    man/ls/clock/date/echo笔记
    Python之路,Day2
    Python之路,Day1
    自动化部署nginx负载均衡及监控短信报警
    NO.11天作业
    Tiny C Compiler简介-wiki
    stm32中使用cubemx配置freertos的信号量大小
    c99的新功能
  • 原文地址:https://www.cnblogs.com/hdwang/p/4607934.html
Copyright © 2011-2022 走看看