js、 数组

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
 </head>
 <body>
  

  <script type="text/javascript">
	/*
		javascript---数组Array
		定义方式如下:
		var arr = [];//初始化一个空长度的数组
		var arr = new Array();//内存 
		1:数组下标都是从0开始,也就是说数组里面的第一个元素就是
		2:数组的长度是:.length
		3:第一个元素:arr[0] = "xxx"; 最后一个元素:arr[length-]="xxx"
		4:当一个数组下标越界的时候,返回undefined
		5:toString()转成字符串
		6:数组的push()方法是:追加到数组的最后面
		7:join()改变数组的分隔符
		8:shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值
		9:pop() 方法用于把数组的最后一个元素从其中删除,并返回最后元素的值
		10:slice(start,end);start:下标 end截取的个数(或者是start+1)
		11: arr6.sort(function(a,b){//升序
				return b - a;	
			});
			//降序	
			arr6.sort(function(a,b){
				return a - a;	
			})

	*/

	//第一种方式定义一个空数组
	var arr = [];
	//第二种定义了一个有值的数组
	var arr2 = [1,3,4,5,6];
	//alert(arr2[4]);
	//第三种定义方式:先定义后赋值的数组
	var arr3 = [];
	arr3[0] = "xiaoer";
	arr3[1] = "呵呵";
	/************************************************/

	/*********************给数组中添加元素--push***************************/
	var arr5 =  ["xiaoer","KID","哈哈","白羊"];
	//alert("数组push之前的长度是:"+arr5.length+"值是:"+arr5.toString());
	arr5.push("IOY");
	arr5.push("简简单单");
	//alert("数组push之后的长度是:"+arr5.length+"值是:"+arr5.toString());

	/*********************数组中的逗号变为其他字符--join***************************/
	var arr6 =  ["1","2","3","4","5","6"];//把逗号变为特殊字符
	//alert("数组join之前是用逗号分开的:"+arr6.toString());
	//alert("数组join之后是用#分开的:"+arr6.join("#").toString());

	/*********************数组的删除第一个元素--shift***************************/
	var arr7 =  ["1","2","3","4","5","6"];
	//alert("数组shift之前的值是:"+arr7.toString()+"长度:"+arr7.length);
	var value = arr7.shift();
	//alert(value);
	//alert("数组shift之后值的是:"+arr7.toString()+"长度:"+arr7.length);

	/*********************数组的删除最后一个元素并返回最后的值--pop***************************/
	var arr8 =  ["1","2","3","4","5","6"];
	//alert("数组pop之前的值是:"+arr8.toString()+"长度:"+arr8.length);
	var value = arr8.pop();
	//alert(value);
	//alert("数组pop之后值的是:"+arr8.toString()+"长度:"+arr8.length);
	
	/*********************数组截取--slice***************************/
	//splice(start,end);start:开始截取的下标 end结束截取的下标
	var arr9 = [1,2,3,4,5,6,7,8,9,0];
	alert(arr9.slice(2,1));

	
	/*********************数组元素添加,删除,替换--splice***************************/
	//splice(start,count,end);start:下标 end截取的个数
	var arr9 = [1,2,3,4,5,6,7,8,9,0];
	alert(arr9.splice(2,0,"100"));//2代表索引为2的位置,0为插入的元素100所占有的空间,100为插入的元素


	/*********************数组的合并--concat***************************/
	var carr = [1,2,5,7];
	var larr = [1,8,9,2,200];
	var car2 = larr.concat(carr);
	//alert(typeof carr);
	//alert(typeof car2.toString());

	/*数组扩展了:indexOf,去重,合集,并集,交集,包含*/
	
	var tmArray= {
		each : function(arr,fn){
			fn = fn || Function.K;
			var a = [];
			var args = Array.prototype.slice.call(arguments, 1);
			for(var i = 0; i < arr.length; i++){
				var res = fn.apply(arr,[arr[i],i].concat(args));
				if(res != null) a.push(res);
			}
			return a;
		},
		map : function(arr,fn,thisObj){
			var scope = thisObj || window;
			var a = [];
			for ( var i=0, j=arr.length; i < j; ++i ) {
				var res = fn.call(scope, arr[i], i, this);
				if(res != null) a.push(res);
			}
			return a;
		},
		orderBy : function(array,sortFlag){
			var $arr = array;
			if(sortFlag=='asc'){
				$arr.sort(this._numAscSort);
			}else if(sortFlag=='desc'){
				$arr.sort(this._numDescSort);
			}else{
				$arr.sort(this._numAscSort);
			}
			return $arr;
		},
		// 姹備袱涓泦鍚堢殑骞堕泦
		union : function(a, b){
			 var newArr = a.concat(b);
			 return this.unique2(newArr);
		},
		// 姹備袱涓泦鍚堢殑琛ラ泦
		complement :function(a,b){
			return this.minus(this.union(a,b),this.intersect(a,b));	
		},
		// 姹備袱涓泦鍚堢殑浜ら泦
		intersect : function(a,b){
		   a = this.unique(a);	
			return this.each(a,function(o){
				return b.contains(o) ? o : null;
			});
		},
		//姹備袱涓泦鍚堢殑宸泦
		minus : function(a,b){
			a = this.unique(a);	
			return this.each(a,function(o){
				return b.contains(o) ? null : o;
			});
		},
		max : function(arr){
			return Math.max.apply({},arr) ;
		},
		min : function(arr){
			return Math.min.apply({},arr) ;
		},
		unique :function(arr){
			 var ra = new Array();
			 for(var i = 0; i < arr.length; i ++){
				 if(!ra.contains(arr[i])){
				 //if(this.contains(ra,arr[i])){	
					ra.push(arr[i]);
				 }
			 }
			 return ra;
		},
		unique2 : function(arr){
			for ( var i = 0; i < arr.length; i++) {
				for ( var j = i + 1; j < arr.length;) {
					if (arr[j] == arr[i]) {
						arr.splice(j, 1);
					} else {
						j++;
					}
				}
			}
			return arr;
		},
		indexOf : function(arr,val){
			for ( var i = 0; i < arr.length; i++) {
				if (arr[i] == val)
					return i;
			}
			return -1;	
		},
		contains : function(arr,val){
			return this.indexOf(arr,val) !=-1 ? true : false;
		},
		remove : function(arr,index){
			var index = this.indexOf(arr,index);
			if (index > -1) {
				arr.splice(index, 1);
			}
			return arr;
		},
		removeObject : function(arr,item){
			for ( var i = 0; i < arr.length; i++) {
				var jsonData = arr[i];
				for ( var key in jsonData) {
					if (jsonData[key] == item) {
						arr.splice(i, 1);
					}
				}
			}
			return arr;
		},
		toArray : function(arrString,sp){
			if(sp==undefined)sp=",";
			if(arrString==undefined)return this;
			var arrs = arrString.split(sp);
			return arrs;
		},
		_numAscSort :function(a,b){
			 return a-b;
		},
		_numDescSort :function(a,b){
			return b-a;
		},
		_sortAsc : function(x, y){
			if(x>y){
				return 1;
			}else{
				return -1;
			}
		},
		_sortDesc : function (x, y){
			if(x>y){
				return -1;
			}else{
				return 1;
			}
		}
		
	 };
	
	Array.prototype.contains = function(obj) {
		var i = this.length;
		while (i--) {
			if (this[i] === obj) {
				return true;
			}
		}
		return false;
	}
	var arr6 =  ["11","11","22","3","3","4","5","6"];
	/*tmArray.each(arr6,function(i){
		alert(i);
	});

	var arr11 = tmArray.orderBy(arr6,"asc");
	alert(arr11.toString());*/

	alert(tmArray.unique(arr6));
	alert(tmArray.indexOf(arr6,"11"));
	alert(tmArray.min(arr6));
	alert(tmArray.max(arr6));

//inner/outerText/HTML 针对有结束符的标签,如span,div这些标签,如input这种标签的话,不合适



  </script>
 </body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值