关于数组Arry的一些基本认识

Posted on 2016-12-25 23:46  码上快乐  阅读(365)  评论(0)    收藏  举报

认识数组主要从以下几个方面去认识,一:数组具备什么样的特性,二:它能做什么,三:它具备哪些常用的api方法

          //数组的原始表示方式
		/*
			数组的特性:1有长度,2以0开头
		*/
		var arr1 = new Array(1,2,5,4);//等价于   var arr1 = [1,2,3,4];
		console.log("arr1="+arr1,"arr1的长度"+arr1.length,"arr1[0]="+arr1[0],"arr1[1]="+arr1[1]);
		//1:向数组中添加元素
		arr1[4] = "b";
		console.log("arr1="+arr1);
		//2:利用push()向数组末尾添加一个元素
		arr1.push("xixi");
		console.log(arr1);//[1, 2, 3, 4, "b", "xixi"]
		//3:删除数组的最后一个元素
		arr1.pop();
		console.log(arr1);//[1, 2, 3, 4, "b"]
		//4:向数组中首位添加一个数字
		arr1.unshift("哈哈");
		console.log(arr1);//["哈哈", 1, 2, 3, 4, "b"]
		//5:删除数组中的第一个
		arr1.shift();//删除数组中的第一个
		console.log(arr1);//[1, 2, 3, 4, "b"]
		/*6:判断该数组是否是某个对象*/
		if(arr1 instanceof Array){
			console.log("arr1是存在于Array对象所造出来的");//true
		};
		//7将数组变成字符串
		arr1.toString();//数组会变成以","分隔的字符串
		console.log("arr1变成字符串:"+arr1);//arr1变成字符串:1,2,3,4,b
          //8 delete arr1[0]
          delete arr1[0]; //会删除数组0的位置,但arr[0]=undefined,数组的整个长度不变

  以上主要讲到了数组两种表示方法,var arr = new Array()或者 var arr = [];数组索引由下标以0开始索引,具有长度length属性。

  数组的增删方法:push(向数组的最后一个添加),pop()删除数组的最后一个元素,shift()删除数组的第一个元素,unshift()向数组的第一个值添加。

  A instanceof  B  :主要是判断A是否由B对象。

  

  判断一个数组中元素中所在的位置,arr.indexOf("1"),如该元素"1"所在数组0位置,则会返回0,如该元素不存在数组中,则返回-1

          var bgColor = ["red","green","blue"];
		var numArr = bgColor.valueOf();
		console.log(numArr);
		var t = bgColor.indexOf("green");//返回一个
		console.log("green所在数组中的位置:"+t);

		var b = bgColor.join(",");//将数组以,分隔
		console.log(b);//red,green,blue

		//排序
		arr1.sort(function(a,b){
			return b-a;//如果b-a>0 则以倒序,从大到小的方式排列,如b-a<0,则以小到大的方式排列
		});
		function compare(a,b){
			if(a<b){
				return 1;
			}else if(a>b){
				return -1
			}else{
				return 0;
			}
		};
		console.log("compare="+arr1.sort(compare));
		console.log(arr1);
		//倒序reverse
		arr1.reverse();//倒序
		console.log("reverse后数组的值:"+arr1);

		//concat()方法,连接连个数组
		var strArr1 = ["red","green","blue"];
		var strArr2 = ["1","2","3"];
		var newStr = strArr1.concat(strArr2);
		var newStr2 = strArr1.concat("ss",["呵呵","嘿嘿"]);
		console.log("concat"+newStr2);
		console.log(newStr);

		//数组中的slice方法
		//slice(a),当只有一个参数时,则以该位置开始,以数组的最后一个长度结束
		//slice(a,b)当有两个参数时,以a为开始,b为结束
		var strArr1_1 = strArr1.slice(1);
		var strArr1_2 = strArr1.slice(2);
		console.log(strArr1_1);//["green", "blue"]
		console.log(strArr1_2);//["blue"]
		var strArr1_3 = strArr1.slice(1,3);
		console.log(strArr1_3);//["green", "blue"]
		console.log("=====slice(-1)=====");
		var strArr1_31 = strArr1.slice(-1);//slice(a)----当为一个参数时且为负数,则从右往左-1,代表一个,-2代表2个
		console.log(strArr1_31);
		console.log("=====slice(-1)=====");
		console.log("=====slice(-2,-1)=====");
		var strArr1_32 = strArr1.slice(-2,-1);
		console.log(strArr1_32);//green
		console.log("====slice(-2,-1)===");
		//splice(start,end)截取以start开头,以end结束
		var strArr1_4 = strArr1.splice(0,1);
		console.log("strArr1_4 "+strArr1_4);//["red"]
		console.log(strArr1);
		var strArr1_5 = strArr1.splice(1,2);
		console.log(strArr1_5);
		var strArr1_6 = strArr1.splice(-1,2);
		console.log(strArr1);
		console.log(strArr1_6);

		//indexOf("xxx")返回该元素下标所在数组中的位置

		var t = newStr2.indexOf("ss");
		console.log(t);//3

		var strArrs = ["平安夜","没有苹果吃","好悲剧"];
		var number = [1,2,4,5,6,8,9,3];
		/*
			strArrs.forEach(function(a,b){
				a:数组中具体的值
				b:为索引
			})
		*/
		strArrs.forEach(function(value,i){
			console.log(value+"===="+i);
		});
		strArrs.forEach(function(item,index,arry){
			//console.log(item);//具体元素
			//console.log(index);
			console.log(index);//索引下标值
		});
		//map 返回运行中的每一个值 
		var tnum = number.map(function(value,i){
			return value*2;
		});
		console.log("tnum==="+tnum);//tnum===2,4,8,10,12,16,18,6
		var filter = number.filter(function(value,i,arr){
			return value>5;
		});
		console.log(filter);//[6, 8, 9]
		var sum = number.reduce(function(prev,next,index,arr){
			//console.log(prev);
			//console.log(next);
			return prev*next
		});
		console.log("sum="+sum);

  关于slice():

var arr = ["a","b","c","d"]
undefined
arr.slice(0,2)
["a", "b"]
arr
["a", "b", "c", "d"]
arr.slice(-1)
["d"]
arr.slice(1,2)
["b"]
arr.slice(1,3)
["b", "c"]
arr.slice(-1,3)
[]
arr
["a", "b", "c", "d"]

 

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3