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));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章