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;
    }
      
  • 相关阅读:
    学习:类和对象——构造函数和析构函数
    学习:类和对象——封装
    学习:引用类型
    学习:内存分区模型
    实现:通讯录管理系统
    实现:结构体案例
    学习:结构体
    实现:指针和冒泡函数和数组
    学习:指针
    学习:函数的分文件编写
  • 原文地址:https://www.cnblogs.com/hdwang/p/4607934.html
Copyright © 2011-2022 走看看