本地对象Array的原型扩展实现代码

代码如下:

Array.prototype.del=function(){
var b={},c,i=0,l=this.length,j;
for(;i<l;i++){
c=this.shift();
c in b ? b[c]++ : b[c]=0;
}
for(j in b){
if(b[j]>0)this.push(+j||j);
}
return this;
}
var a=[1,2,2,3,3,3,'a','b','b'];
alert(a.del());

果果的去重方法


代码如下:

Array.prototype.del=function(){
return (function (i, n, j, u, o){
for (; i < j; i++) {
o = this[i];
o in u ? 0 : (u[this[n++] = o] = 1)
}
this.length = n;
return this
}).call(this, 0, 0, this.length, {})
}
var a=[1,2,2,3,3,3,'a','b','b'];
alert(a.del())

(0)

相关推荐

  • javascript Array数组对象的扩展函数代码

    今天重点讲下 如何给Array对象扩展 1.直接在Array.prototype 上扩展 2.用自己方法对数组对象进行扩展 直接在Array.prototype上扩展,不能直接对dom对象使用(如:document.getElementsByTagName('div')得到的nodeList); 对有洁癖的同学而言 也破了原始生态环境的 : ) 先来看下 yui操作数组的一些方法,这里我对源码简单剥离并改动了下 复制代码 代码如下: (function(){ var YArray; YArray

  • javascript Array对象使用小结

    Javascript的数组实质是对象,它把数组的下标转换成字符串,用其作为属性,因此它明显比真正的数组慢,但它可以更方便地使用. 改变自身pop,push,reverse,shift,sort,splice,unshift, 不改变自身concat,join,slice,indexOf,lastIndexOf(后两个为1.6),1.6新增的迭代器:map,filter,forEach,every,some,1.8新增reduce,reduceRight Array 对象的方法 FF: Firef

  • JavaScript Array扩展实现代码

    indexOf 返回元素在数组的索引,没有则返回-1.与string的indexOf方法差不多. 如果其他浏览器没有实现此方法,可以用以下代码实现兼容: 复制代码 代码如下: Array.prototype.indexOf = function(el, start) {     var start = start || 0;     for ( var i=0; i < this.length; ++i ) {         if ( this[i] === el ) {           

  • javascript Array对象基础知识小结

    对于Array对象我的总结思想是:5法,3招,12式 1.声明5法:只针对一维数组,当然还有二维三维,这里就不做解释了 复制代码 代码如下: var a = new Array(); var a = new Array; var a = new Array(10);//创建Array对象,并指定数组中项的个数 var a = new Array("red","blue","green"); var a = ["red",&qu

  • 本地对象Array的原型扩展实现代码

    复制代码 代码如下: Array.prototype.del=function(){ var b={},c,i=0,l=this.length,j; for(;i<l;i++){ c=this.shift(); c in b ? b[c]++ : b[c]=0; } for(j in b){ if(b[j]>0)this.push(+j||j); } return this; } var a=[1,2,2,3,3,3,'a','b','b']; alert(a.del()); 果果的去重方法

  • JavaScript高级程序设计 读书笔记之九 本地对象Array

    创建Array对象 复制代码 代码如下: //one var aValues=new Array(); //two var aValues=new Array(20); //three var aColors=new Array(); aColors[0]="red"; aColors[1]="green"; aColors[2]="blue"; //four var aColors=new Array("red","

  • 数组Array进行原型prototype扩展后带来的for in遍历问题

    通常在JavaScript中用for与for in遍历数组结果是没有什么区别的,它的循环变量i都是从0开始的数组索引(for in如果遍历的是非数组对象的属性集合,则这个i就是属性名,或称之为key).另外要注意一点是:用for in遍历数组,循环变量i是字符串类型的.如果对Array进行原型扩展后,再用for in来对数组进行遍历时就要注意些问题了. 测试代码: 复制代码 代码如下: Array.prototype.max = function() { return Math.max.appl

  • 收集的一些Array及String原型对象的扩展实现代码

    从无忧脚本收集过来的,有些的确还不错,比较实用,值得收藏一下. 扩展Array的原型对象的方法 复制代码 代码如下: // 删除数组中数据 Array.prototype.del = function(n) { if (n<0) return this; return this.slice(0,n).concat(this.slice(n+1,this.length)); } // 数组洗牌 Array.prototype.random = function() { var nr=[], me=

  • JavaScript常用本地对象小结

    一.javascript是面向对象的编程语言 封装:把相关的信息(无论数据或方法)存储在对象中的能力 聚集:把一个对象存储在另一个对象内的能力 继承:由另一个类(或多个类)得来类的属性和方法的能力. 多态:编写能以多种形态运行的函数或方法的能力 二.Array对象 使用单独的变量名来存储一系列的值. 2.1创建数组对象 var aValues = new Array(); var aValues = new Array(25); var aColors = new Array("red"

  • 对象的类型:本地对象(1)

    在ECMAScript中,所有对象并非同等创建的.一般说来,可以创建并使用的对象有三种. 3.3.1 本地对象 ECMA-262把本地对象(native object)定义为"独立于宿主环境的ECMAScript实现提供的对象".简单说来,本地对象就是ECMA-262定义的类(引用类型).它们包括: 你已经从上一章了解了一些本地对象(Object.Function.String.Boolean和Number),本书后面的章节中还会讨论一些本地对象.现在要讨论的两种重要的本地对象是Arr

  • .NET Core对象池的应用:扩展篇

    目录 一.池化集合 二.池化StringBuilder 三.ArrayPool<T> 四.MemoryPool<T> 原则上所有的引用类型对象都可以通过对象池来提供,但是在具体的应用中需要权衡是否值得用.虽然对象池能够通过对象复用的方式避免GC,但是它存储的对象会耗用内存,如果对象复用的频率很小,使用对象池是不值的.如果某个小对象的使用周期很短,能够确保GC在第0代就能将其回收,这样的对象其实也不太适合放在对象池中,因为第0代GC的性能其实是很高的.除此之外,对象释放到对象池之后就

  • 在JavaScript实例对象中改写原型方法详情

    目录 在JavaScript中,我们通常可以像下面的代码这样来简单地定义一个类: var sample = function() { // constructor code here } sample.prototype.func1 = function() { // func1 code here } sample.prototype.func2 = function() { // func2 code here } /* more sample prototype functions her

  • js对象继承之原型链继承实例

    本文实例讲述了js对象继承之原型链继承的用法.分享给大家供大家参考.具体分析如下: 复制代码 代码如下: <script type="text/javascript"> //定义猫的对象 var kitty  = {color:'yellow',bark:function(){alert('喵喵');},climb:function(){alert('我会爬树')}}; //老虎对象的构造函数 function tiger(){  this.color = "ye

  • PHP var_dump遍历对象属性的函数与应用代码

    本文章下面我们要为你提供二种关于遍历对象属性方法,并且举例说明遍历对象属性在php中的应用.可以看出私有变量与静态变量时获取不到的,只有定义为公共变量才可以读出来. 遍历对象属性第一种方法: 复制代码 代码如下: <?php class foo { private $a; public $b = 1; public $c; private $d; static $e; public function test() { var_dump(get_object_vars($this)); } } $

随机推荐