欢迎来到 jackNEss'窝窝
I like simple mind

[JS]对 array 类进行扩展

2011年09月28日

对 array 类进行扩展

题目

给 array 类 扩展一种方法,该方法的作用是过滤掉数组中重复的内容。

分析

本题考察的是一些基本的程序思维以及prototype的用法。

演示地址:http://www.jackness.org/lab/test/array_expand/demo.html

答案

//javascript
Array.prototype.colating = function(){ 
	for(var i = 0; i < this.length;i++){
		for( var j = i + 1; j < this.length;){
			this[j] === this[i]?this.splice(j,1):j++;
		}
	}
}

//测试
var a = [1,2,3,4,1,5,5,7,55,9,465,4,5,5,5,654,6,5,4];
a.colating();
alert(a);	

题外话

类似于这种的扩展在日常开发中有一部分人喜欢这样对原生js进行适当的扩充包括jquery的作者 John Resig,他也对Array类进行了扩充。

不过也有反对的声音说,这样的扩充是对原生js的一种污染,也有道理,例如上面写的colating方法,万一ECMAScript以后的版本支持这种方法,那就囧了…

所以对于这种的处理手段是否合适,就见仁见智吧。

分类javascript
阅读 3,326
  • 评论加载中...

标签云

分类目录

最新留言

  • 评论加载中...

与我联系

如有疑问or建议可通过以下方式跟我取得联系.

Q Q:373435871
Email:jackness1208@gmail.com
© Copyright 2011 - 2014 jackNEss.org All Rights Reserved 粤ICP备14065612号
首页 | 关于我 | 网站地图 | RSS