`
leeyea
  • 浏览: 13490 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

利用js的prototype属性给数组去重

阅读更多
在项目中,我们在处理数据的时候经常需要去重复数据,以便归结或者其它:
	Array.prototype.distinct = function () {
		var a = {}, c = [], l = this.length;
		for (var i = 0; i < l; i++) {
			var b = this[i];
			var d = (typeof b) + b;
			if (a[d] === undefined) {
				c.push(b);
				a[d] = 1;
			}
		}
		return c;
	}
	var arr = ["白色","白色","红色","黑色","红色"];
	console.log(arr.distinct());//白色, 红色, 黑色
	
	//javascript中的prototype属性使用说明(函数功能扩展)
	//此处的prototype,不是指著名的prototype.js框架,而是Javascript中的prototype属性
	//Javascript中的继承一般都依赖这个特殊的属性
	//在Javascript中,一切都是对象,字符串是对象,数组是对象,变量是对象,函数也是对象,
	//所以才会允许['a','b','c'].push('d');这样的操作存在。类本身也是一个对象,也可以定义属性和方法: 

分享到:
评论

相关推荐

    JavaScript基于对象方法实现数组去重及排序操作示例

    本文实例讲述了JavaScript基于对象方法实现数组去重及排序操作。分享给大家供大家参考,具体如下: [removed] //用对象方法实现数组去重 Array.prototype.unique = function() { var newArr = []; for (var i =...

    JavaScript常见的五种数组去重的方式

    JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN]; 第一种 思路:建立一个临时数组,用for循环去依次判断arr中的每个项在临时...

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

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

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

    Javascript 数组去重的四种方法 四种算法来实现这个目的: 第一种方法: Array.prototype.unique1 = function () { var n = []; //一个新的临时数组 for (var i = 0; i &lt; this.length; i++) //遍历当前数组 {...

    javascript数组去重3种方法的性能测试与比较

    昨天参加的一个前端面试,其中有一题数组去重,首先想到的是对象存键值的方法,代码如下 方法一:(简单存键值) 代码如下: Array.prototype.distinct1 = function() { var i=0,tmp={},that=this.slice(0) this....

    JavaScript数组去重的3种方法和代码实例

    数组去重的方法有很多,到底哪种是最理想的,自己不清楚。于是自己测试了下数组去重的效果和性能。测试十万个数据,代码和所耗大概时间如下。  到底采用哪种方法,根据实际情况而定吧。 /*方法一: 1,'1' 会被认为...

    javascript数组去重的方法汇总

    //如果当前数组的第i已经保存进了临时数组,那么跳过, //否则把当前项push到临时数组里面 if (n.indexOf(this[i]) == -1) n.push(this[i]); } return n; } 第二种: Array.prototype.unique2 = function() ...

    js 数组去重的四种实用方法

    面试前端必须准备的一个问题:怎样去掉Javascript的Array的重复项。据我所知,百度、腾讯、盛大等都在面试里出过这个题目。这个问题看起来简单,但是其实暗藏杀机。 考的不仅仅是实现这个功能,更能看出你对计算机...

    javascript数组去重方法终极总结

    有时会碰上这种需求,需要将数组中重复的元素删除掉,而只保留一个。最先想到的办法很可能就是用2个for循环来做比较然后去除掉重复的元素,代码如下所示: 方法1: 代码如下:Array.prototype.distinct = function()...

    JavaScript数组去重的几种方法效率测试

    数组去重法1: Array.prototype.unique1 = function(){ console.time(数组去重法1); //记录开始执行的时间 var arr = []; //创建一个临时数组 var obj = {}; //创建一个空对象 for(var i = 0; i &lt; this....

    javascript数组去重方法汇总

    javascript数组去重方法汇总 Array.prototype.unique1 = function () { var n = []; //一个新的临时数组 for (var i = 0; i &lt; this.length; i++) //遍历当前数组 { //如果当前数组的第i已经保存进了临时数组...

    js数组去重的hash方法

    对于 JavaScript 数组去除重复项,现在有多种方法,其中一种是hash,如下: if (!Array.prototype.unique) { Array.prototype.unique = function () { var hash = {}, result = [], item; for (var i = 0; i &lt...

    js实现数组去重、判断数组以及对象中的内容是否相同

    代码如下: /* *数组元素去重 */ if(typeof Array.prototype.distinct != “function”){ Array.prototype.distinct = function(){ this.sort(); for(var i=0;i&lt;this.length-1;i++){ if($.isPlainObject(this[i]) ...

    JavaScript数组去重由慢到快由繁到简(优化篇)

    在进行数组操作时往往会遇到去掉重复项的问题,下面简单介绍下数组去重的方法。 indexOf去重 Array.prototype.unique1 = function() { var arr = []; for (var i = 0; i &lt; this.length; i++) { var item = this...

    详解javascript数组去重问题

    首先,我想到的是另建一个结果数组,用来存储原始数组中不重复的数据。遍历原始数组依次跟结果数组中的元素进行比较,检测是否重复。于是乎,我写出了如下代码A: Array.prototype.clearRepetitionA = function(){...

    JS实现数组去重方法总结(六种方法)

    如果有相同的值则跳过,不相同则push进数组 Array.prototype.distinct = function(){ var arr = this, result = [], i, j, len = arr.length; for(i = 0; i &lt; len; i++){ for(j = i + 1; j &lt; len; j++...

    javascript数组去重的六种方法汇总

    面试前端必须准备的一个问题:怎样去掉Javascript的Array的重复项。据我所知,百度、腾讯、盛大等都在面试里出过这个题目。 这个问题看起来简单,但是其实暗藏杀机。 考的不仅仅是实现这个功能,更能看出你对计算机...

    javascript数组去重方法总结(推荐)

    第一种–对象键值去重 Array.prototype.unique1 = function () { var r = {}, temp = [] for (var i = 0; i &lt; this.length; i++) { if (!r[this[i]]) { r[this[i]] = 1 temp.push(this[i]) } } return ...

    两种常用的javascript数组去重方法思路及代码

    若没有,则存到结果数组中 代码如下: Array.prototype.unique1 = function(){ var res = []; for(var i = 0; i &lt; this.length; i++){ if(res.indexOf(this[i]) == -1){ res.push(this[i]); } } return res; } var...

    js数组去重的三种常用方法总结

    3.若结果数组中没有该元素,则存到结果数组中 代码如下:Array.prototype.unique1 = function(){ var res = [this[0]]; for(var i = 1; i &lt; this.length; i++){ var repeat = false; for(var j = 0; j &lt; ...

Global site tag (gtag.js) - Google Analytics