`
好好学习-天天向上
  • 浏览: 35930 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

js 去重

 
阅读更多

 

最近有一段事件是在做TDD测试,我觉得难点就是去重问题,现提供几个方法及自己的理解。

第一种方法:

 

var arr = [1, 2, 2, 3, 4, 5, 6, 6];

function getArray(a) {
 var hash = {},
     len = a.length,
     result = [];

 for (var i = 0; i < len; i++){
     if (!hash[a[i]]){
         hash[a[i]] = true;
         result.push(a[i]);
     } 
 }
 return result;
}

getArray(arr); // 输出[1, 2, 3, 4, 5, 6]

 这样的做法其实就是在遍历 给出数组 的元素时在一个hash中给每一个出现过的元素做一个标志,进而做出判断改元素是否存在,然后去重的目的。这是一种值得学习的方法

 

 

第二种方法:

 

 var array = [];
  var length = new_array.length;
  for(var i = 0;i < length; i++){
    for(var j = i+1; j < length; j++){
      if(new_array[i] === new_array[j] ){
        j = ++i;
      }
    }
    array.push(new_array[i]);
  }
  return array;

 这个就比较的难理解了,精华在与 j = ++i;这句话,这个是你拿第一个元素和第二个元素起一一做比较但是,当遇到不同的时候就push到array,同时以不同的那个元素为标准,接着和后面的比,以此类推。这种方法不提倡,别人难以看懂。

 

第三种方法:自己的方法

 

for (var n = 0, len = result.length; n < len; n++) {
        if (k.name == result[n].name) {
          result[n].summary += k.summary;
        }
        else if(k.name !== result[n].name && n == len -1){
          result.push(k);
        }
      }

 重要是

else if(k.name !== result[n].name && n == len -1)

 这句话,它的意思是当k.name不和result中的每一个元素不相等,直到最后一个都不相等,

 

 

n == len -1

这个样写的原因就是你每次push到result的时候result的length是一直在变的,这样就避免了长度定值问题。

   综合上述三种方法就简单好理解的是第三种,但我推荐大家学习第一种,主要学的是那种思想和那种处理问题的角度。 

 

 

分享到:
评论

相关推荐

    js字符串去重、json数组去重.txt

    js对字符串(逗号隔开的)进行去重操作;js对json数组进行去重操作(指定某个属性),开发中经常遇到的前端小方法,简单实用

    原生JS去重-两种方法去掉重复字符

    总结一下,原生JavaScript提供了解决字符串去重问题的多种途径。Set和filter()方法都是有效且实用的选择。理解这些基本概念并灵活运用,可以提高我们的编程效率和代码质量。在实际应用中,还可以结合其他数据结构和...

    详解JS去重及字符串奇数位小写转大写

    接下来,我们将详细介绍几种常见的JavaScript去重方法以及如何将字符串中奇数位置的字符转换为大写。 首先,我们来探讨一下如何使用JavaScript去重数组。在ES5中,我们可以通过indexOf()方法来判断新数组中是否已...

    php数组去重和js数组去重最简方法

    对于JavaScript数组去重,有多种简单的方法。首先是使用ES6的Set对象,Set类似于数组,但不允许重复值: ```javascript let uniqueArray = [...new Set(array)]; ``` 这段代码首先创建一个Set,然后使用扩展运算符`...

    JavaScript Array数组去重源码下载

    JavaScript Array数组去重源码下载

    JavaScript数组去重功能的设计与实现.pdf

    JavaScript数组去重功能的设计与实现 本文主要讨论了JavaScript数组去重功能的设计与实现,以解决在数据处理过程中产生大量重复数据的问题。文章首先介绍了JavaScript的基本概念,包括ECMAScript、DOM、BOM三个部分...

    js操作两个json数组合并、去重,以及删除某一项元素

    两个json数组合并去重,以及删除某一项元素 let ha = [ {id:'H',name:'3'}, {id:'A',name:'6'}, {id:'B',name:'14'}, {id:'C',name:'60'} ]; let hb= [ {id:'H',name:'2'}, {id:'A',name:'6'}, {id:'B',...

    js数组中存对象,根据对象的属性进行去重

    在进行web项目开发的时候,有时候需要把一些前端的数组进行去重处理,得到一个去重后的数据,然后在进行相关的操作

    JS数组中对象去重操作示例

    在JavaScript编程中,数组是常用的数据结构,而处理数组中的对象去重问题是一个常见的需求。在给定的示例中,我们看到一个包含多个对象的数组`tmp`,每个对象有`id`和`magicId`两个属性。下面将详细讨论如何实现这种...

    多维数组和对象-深去重和深拷贝.js

    对多维数组,对象,进行去重,相同的值只保留一个,常见的new Set()和filter,只能去重一维数组,并不能进行深层的去重,逻辑:判断是否为对象,为对象判断是否为数组或是真的对象,递归一直筛选为值,判断首次...

    js数组去重-duplicateRemoval

    在JavaScript编程中,数组去重是一项常见的操作,特别是在处理数据集合时。本篇文章将深入探讨如何...在"js数组去重-duplicateRemoval"的示例中,`duplicateRemoval.js`可能包含了上述方法之一的实现,供学习和参考。

    JS实现数组去重,显示重复元素及个数的方法示例

    在JavaScript中,数组去重是常见的数据处理操作,通常涉及将数组中的重复项去除,并能够记录下来哪些元素是重复的,以及每个元素重复的次数。下面我将详细解析以上给定文件内容中的知识点: 1. **数组去重基本原理*...

    js代码-编写数组去重

    在JavaScript中,数组去重是一项常见的操作,尤其是在处理数据集合时。...在main.js文件中,可能就实现了其中的一种或几种去重方法,而README.txt文件则可能包含了关于这个代码实现的说明和使用指南。

    js数组去重

    这个代码可以帮你将数组中重复的元素筛选掉,不妨一试

    JS实现数组简单去重及数组根据对象中的元素去重操作示例

    本文主要介绍了在JavaScript中如何实现数组的去重操作,包括数组的简单去重以及根据对象中的特定属性去重。接下来,我们将详细阐述这些技术点。 首先,讨论数组的简单去重。在JavaScript中,数组去重的操作通常需要...

    JavaScript数组去重1

    JavaScript数组去重是编程中常见的需求,特别是在处理数据集合时,确保数据的唯一性非常重要。以下将详细讲解几种常见的JavaScript数组去重方法。 1. **新建数组法**: 这是最基础的方法,通过创建一个新的空数组...

    js代码-去重:filter + hasOwnProperty

    在JavaScript编程中,数据去重是一项常见的操作,特别是在处理数组时。`filter` 和 `hasOwnProperty` 是两个非常有用的工具,它们可以结合使用来实现数组元素的去重。本篇文章将详细探讨这两种方法以及如何结合它们...

    图片上传-有去重功能

    8. **文件名称列表**:压缩包内的"图片上传-去重"可能是包含源代码、CSS样式文件、JavaScript脚本、图片示例以及可能的数据库配置文件等,用于构建和测试整个图片上传去重功能的完整项目。 综上所述,这个项目的...

    js数组去重使用es6的Set集合实现

    js数组去重

    java jsonarray 踢重 去重操作

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Java作为一种广泛使用的编程语言,在处理JSON数据方面提供了丰富的工具和库。`JSONArray`是JSON中最...

Global site tag (gtag.js) - Google Analytics