`
yanzhihong23
  • 浏览: 59193 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JS数组的去重与降维

 
阅读更多

 

去重:

创建一个空数组和一个空对象,在for循环中,每次取出一个元素,检测是否已经是对象的key,如果不存在就加入到新建的数组中。

 

降维:

由于不能给this赋值,所以先将数组赋值给that。在for循环中,每次取出一个元素,检测是否是数组。如果是,把数组拆分成3个部分:当前元素之前所有元素组成的数组、当前元素(也是数组)、当前元素之后的所有元素组成的数组。用concat将这三个数组重新合并为一个新数组,由于for循环会index+1,把当前的index-1,保持index不变,重新做一次检测。因为当前元素这个数组里面的第一个元素也可能还是一个数组。

 

// 去重
Array.prototype.unique = function(){
	var res = [], json = {}, i = 0, len = this.length;
	for(; i < len; i++) {
		if(!json[this[i]]) {
			res.push(this[i]);
			json[this[i]] = 1;
		}
	}

	return res;
};

// 降维,支持N维数组
Array.prototype.dr = function(){
	var that = this; // 不能给this赋值
	for (var i = 0; i < that.length; i++) {
		if(that[i] instanceof Array){
			that = that.slice(0, i).concat(that[i], that.slice(i+1));
			i--;
		}
	}

	return that;
};

 

 

 

 

 

2
3
分享到:
评论
2 楼 yanzhihong23 2014-04-10  
樱井智树 写道
楼主可以详细解释下原理么?乍一看经验不足真心不怎么看得出来


更新了,你再看看?
1 楼 樱井智树 2014-04-10  
楼主可以详细解释下原理么?乍一看经验不足真心不怎么看得出来

相关推荐

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

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

    js数组去重

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

    js数组去重-duplicateRemoval

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

    javascript数组去重小结_.docx

    JavaScript数组去重是编程面试中常见的算法问题,主要目的是消除数组中的重复元素,确保每个元素在结果数组中只出现一次。本文将总结四种常见的JavaScript数组去重方法,并分析它们的优缺点。 首先,我们来看**循环...

    javascript实现数组去重的方法

    方法一:利用双层for循环通过原数组去重,就是遍历数组,把数组的每一个值依次与后面的值进行比较,如果不相同则存入新数组。 测试代码: var arr = [1, 6, 8, 32, 1, 66, 8, 6]; function noRepeat(arr) { var _...

    js数组去重的5种算法实现

    JS数组去重是前端开发中经常遇到的问题,因为数据处理是几乎所有应用程序中都会进行的一个基础环节。在JavaScript中,处理数组去重可以通过多种不同的算法来实现,每种方法都有其特点和适用场景。本文将详细介绍五种...

    js数组去重的方法汇总

    在JavaScript中处理数组去重问题是前端开发中经常遇到的一个场景。因为JavaScript数组中可以存储各种类型的值,包括基本类型值和对象引用,所以可能会因为数组中存在重复元素而导致数据处理上的不便。本文将详细介绍...

    高性能js数组去重(12种方法,史上最全)

    这里我们将探讨12种不同的方法来实现JS数组去重,以提高对这些技术的理解。 1. **利用ES6 Set去重**: Set是ES6中新增的数据结构,它不允许重复的值。通过将数组转换为Set,然后再转回数组,可以实现去重。 ```...

    js代码-数组去重相加

    在JavaScript编程中,数组去重和元素相加是常见的操作,尤其在处理数据集合时显得尤为重要。本项目“js代码-数组去重相加”旨在提供一种解决方案,以有效地处理包含重复元素的数组,并对其中的数值进行求和。下面...

    JavaScript 数组去重并统计重复元素出现的次数实例

    1、方法一 var arr = [1, 2, 3, 1, 2, 4]; function arrayCnt(arr) { var newArr = []; for(var i = 0; i &lt; arr.length;... if(newArr.indexOf(arr[i]) == -1) { ... var newarr2 = new Array(newArr.length);...

    JS基于开关思想实现的数组去重功能【案例】

    在JavaScript编程中,数组去重是一个常见且实用的操作,它指的是从数组中移除重复的元素,只保留唯一的值。本文介绍的是一种基于“开关思想”(布尔标志变量)的数组去重方法。这种方法简单直观,易于理解和实现。 ...

    js实现数组去重(5种方式,代码中有注释解释原理)

    js实现数组去重(5种方式,代码中有注释解释原理)

    JS数组去重常用方法实例小结【4种方法】

    本文实例讲述了JS数组去重常用方法。分享给大家供大家参考,具体如下: js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array...

    JavaScript学习笔记之数组去重_.docx

    ### JavaScript 数组去重方法详解 #### 一、引言 在JavaScript开发中,数组作为最常用的数据结构之一,其处理技巧尤为重要。特别是在面试或实际项目中,经常会遇到需要对数组进行去重的需求。本文将详细介绍几种...

    Javascript 数组去重的方法(四种)详解及实例代码

    JavaScript中的数组去重是编程中常见的操作,尤其在处理数据集合时显得尤为重要。本文将详细介绍四种不同的JavaScript数组去重方法,并提供相应的实例代码。 **第一种方法:基于`indexOf`的去重** 这种方法利用`...

    JS数组去重的6种方法完整实例

    本文将详细介绍六种不同的方法来实现JS数组去重,并提供相应的代码实例。 1. **filter方法结合indexOf**: ```javascript var arr1 = [7, 7, 7, 8, 8, 8, 82, 82, 839, 49, 329, 8, 3, 3]; var arr1_1 = arr1....

    keephunny#document#js数组去重1

    1 //方法四 借助新数组 通过indexOf方判断当前元素在数组中的索引如果与循环的下标相等则添加到新数组中1 //方法五 利用空对象来记录新数组中已经存储过

    javascript数组去重的方法汇总

    JavaScript中的数组去重是编程中常见的需求,尤其是在处理数据集合时。本文汇总了四种不同的JavaScript数组去重的方法,下面将详细解析这些方法及其原理。 ### 第一种:基于`indexOf`的方法(`unique1`) 这种方法...

    关于js数组去重的问题小结

    本文将介绍几种常见的JavaScript数组去重的方法,并对它们的优势和局限进行分析。 第一种方法是基于JavaScript中对象属性名唯一性的原理进行去重。由于对象的属性名是唯一的,可以利用这一特性,通过创建一个临时...

Global site tag (gtag.js) - Google Analytics