array:数组

数组

	  数组是某类数据类型的有序集合,数据类型可以是number(数值),
	  string(字符串),undefined(声明未赋值),null(空),boolean(布尔类型),
	  对象(object)
	  
	  一个数组里面可以使用多种数据类型,数组就动态的,不需要指定大小;
	  数组里面的每个值叫元素,每个元素在数组中都有数字位置编号,
	  也就是下标 从0开始;

创建数组的方式:

1.使用构造函数Arrar去定义数组

	var color =new Array("red","green");//使用Array函数定义数组,(直接写元素)
	console.log(typeof color,color);//object,["red","green"]
	var arr= new Array(2);
	//如果new Array()后接的是一个数值类型,那么这个数字就是数组的长度,数组中的每个元素都是undefined
	console.log(arr);//[2]
	console.log(arr.length);//获取数组的长度
	console.log(arr[0],arr[1]);//获取数组中的每个值
	var arr01 =new Array();//new Array() 括号中没放任何东西,那么创建的是一个空数组
	arr01 = [1,2,3,4];//对空数组重新赋值

2.使用字面量表示法

		var arr02 = [1,"2",undefined,true,null,[1,2],{a:1}];
		//使用数组字面量表示法定义数组,数组的元素可以是任意数据类型
		console.log(arr02);

数组的属性

		数组的属性,length(长度),个constrctor(构造方法)
		var arr03=[1,12,123,1234,12345,123456];
		console.log(arr03.length);//获取数组的长度
		//数组的最小下标为0,最大下标等于长度减1
		var num = arr03.length+2;//num=8
		console.log(arr03);
		arr03[8] = 12345678;
		console.log(arr03);
		console.log(arr03[6],arr03[7]);
		//如果通过索引赋值,索引超过了数组的长度,数组的长度发生变化,
		//前面没有赋值的元素会使用undefined补齐(自动补齐)
		var arr04 = [1,2,3];
		console.log(arr04.length);//3
		arr04.length=2;
		console.log(arr04);//[1,2]
		//如果数组重新赋值的长度小于数组原长度,那么输出的是赋值后的数组长度的内容

		var arr05 = [1,2,3,4,5];
		arr05.length=7;
		console.log(arr05);//[1,2,3,4,5,undefined,undefined]
		//数组重新赋值的长度大于原来的长度,那么输出的是赋值后的数组长度的内容,后面自动适应undefined补齐
		arr05[5] =6;//通过给数组中的某个元素重新赋值,可以改变该元素
		arr05[6] = 7;
		console.log(arr05);//[1,2,3,4,5,6,7]
		 	
		
数组的大小是有限制的,最小是0,最大是2^23-1、
不建议直接改数组的大小,访问数组的时候,要确保索引不会越界
清空数组:
		//1.通过改变数组的长度去清空数组
		arr05.length=0;
		console.log(arr05);
		
		//2.使用delete
		console.log(arr04);
		delete arr04[1];
		//delete根据下标去删除数组中的某一项,只删除元素,被删除的元素使用undefined代替,数组长度不变
		console.log(arr04);
		
		//3.使用fill()
		console.log(arr02.fill());//使用undefined填充整个数组,数组长度不变

		//数组遍历
		var arr06=['小米','小龙'];
		for(var i=0;i<arr06.length;i++){
			console.log(arr06[i]);
		}
		
		for(var j in arr06){//遍历对象一般用for in
			console.log(arr06[j]);
			//j是对应下标,arr06[j]是数组中下标对应的元素;
		}
		//constructor,用来进行对象类型的判断的
		var arr08=[];
		var obj={};
		var str="123";
		console.log(arr.constructor);
		console.log(obj.constructor);
		console.log(str.constructor);
	  数组分为下标数组和纬度数组
	  下标数组分为索引数组和关联数组
	  索引数组就是下标为numer(数值类型)的数组
	  关联数组就是下标为string(字符串)的数组
	  关联数组的元素不计入数组的长度,所以没办法通过下标去访问
	  索引数组和关联数组的区别
	  索引数组用于储存数据,优势在与迭代方便
	  关联数组用于存放对应的数据格式,特定的key对应特定vakue值但是迭代麻烦
		var arr09 = [];
		arr09["name"]="小米";
		arr09['age']=18;
		arr09['sex']="男";
		arr09["location"]="广州"
		console.log(arr09);
		for( var i in arr09){
			console.log(arr09[i]);
//			if(i=="name")document.write("他叫"+arr09[i]);
//			if(i=="age")document.write("今年"+arr09[i]);
//			if(i=="sex")document.write("性别"+arr09[i]);
//			if(i=="location")document.write("来自"+arr09[i]);
		}
		document.write("他叫"+arr09.name+"今年"+arr09.age+"性别"+arr09.sex+"来自"+arr09.location);
		
		var arr07 = [];
		arr07["name"]="小红";
		arr07['age']=18;
		arr07['sex']="女";
		arr07["location"]="广州";
		arr07["subject"]=[];
		arr07["subject"]["math"]="数学";
		arr07["subject"]["chinese"]="语文";
		arr07["subject"]["English"]="英语";
		arr07["subject"]["PE"]="体育";
		arr07["hobby"]=[];
		arr07["hobby"]["football"]="足球";
		arr07["hobby"]["reading"]="看书";
		console.log(arr07);
		for(var i in arr07){
			console.log(arr07[i]);
			if(arr07[i].constructor==Array){
				for(var j in arr07[i]){
					console.log(arr07[i][j]);
				}
			}
		}
		document.write("<br />"+"她叫"+arr07.name+",今年"+arr07.age+",性别"+arr07.sex+",来自"+arr07.location+",<br />学科:"+arr07.subject.math+"、"+arr07.subject.chinese+"、"+arr07.subject.English+"、"+arr07.subject.PE+"。<br />兴趣:"+arr07.hobby.football+"、"+arr07.hobby.reading+"。");
//		document.write('<br>她叫'+arr07['name']+',今年'+arr07['age']+'岁,性别'+arr07['sex']+',籍贯'+arr07['location']+',她的学科有'+arr07['subject']['math']+','+arr07['subject']['chinese']+','+arr07['subject']['English']+';她的爱好有'+arr07['hobby']['football']+'和'+arr07['hobby']['reading']);

		//数组类型:isArray()
		/*
		 * 使用isArray()函数来判定数组,Array.isArray(变量名),返回true,说明是数组,返回fales是非数组
		 */
		
		var arr10=[];
		var obj01={};
		console.log(Array.isArray(arr10));
		console.log(Array.isArray(obj01));
发布了31 篇原创文章 · 获赞 32 · 访问量 1276

猜你喜欢

转载自blog.csdn.net/weixin_45936690/article/details/104472751