给数组原型添加方法

对象原型

每一个JavaScript对象都和另一个对象相关联, 并从另一个对象继承属性,另一个对象就是"原型",
用直接量创建的对象 都具有同一个原型对象 Object.prototype 。

以下通过几个例子帮助我们理解稍微理解原型---对象的属性一部分继承于该对象的原型。

1. 给数组原型添加把稀疏数组变为不稀疏数组的方法

/**
 * noSparse()
 * @return array resArr
 */
Array.prototype.noSparse = function(  ){
	var resArr = [];
	for( var i = 0 ; i < this.length ; i++ ){

		if( this[i] !== undefined ){
			resArr.push( this[i] );
		}
	}
	return resArr;
}

var arr_demo1 = [1,2,,,,,3,4,,'a',['A','B','C'],,'M'];
console.log( arr_demo1.noSparse(  ) );


console.log("-------------------");

2. 给数组原型添加检测一个元素在不在数组里面的方法

/**
 * inArray()
 * @params int type 当type === 1是 是全等比较  除此之外 都是比较值
 * @params fixed ele
 * @return boolean true or false
 * 
 */
Array.prototype.inArray = function(ele,type ){
	for( var i = 0 ; i < this.length ; i++ ){
		if( type === 1 ){
			if( ele === this[i] ){
				return true;	
			}
		} else {
			if( ele == this[i] ){
				return true;
			}
		}
		
	}

	return false;

}

var arr_demo2 = [1,3,5,7,9,'a','b'];
console.log( arr_demo2.inArray( "1",1) );



console.log("------------------------");

3. 给数组原型添加去重复元素方法

/**
 * noRepeat()
 * @return array resArr
 */
Array.prototype.noRepeat = function() {
	var resArr = [];
	for( var i = 0 ; i < this.length ; i++ ){
		if( !resArr.inArray( this[i] ,1 ) ){
			resArr.push( this[i] );
		}
	}

	return resArr;
}

var arr_demo3 = [1,1,2,2,4,5,3,5,6,7,5,3,8,9,8,9];
console.log( arr_demo3.noRepeat() );
posted @ 2017-08-21 15:22  A_码侠  阅读(758)  评论(0编辑  收藏  举报