1. 程式人生 > >JavaScript中陣列及陣列的方法

JavaScript中陣列及陣列的方法

一.陣列及陣列的方法

1.陣列的概念:
是值資料的集合,在JavaScript中陣列中的資料型別可以是不同的.
2.陣列的宣告:
(1)var 陣列的名稱=new Array();
(2)var 陣列的名稱=[];
3.陣列的初始化
(1)var 陣列的名稱=new Array(‘值1’,值2,‘值3’,…)//js 是一種弱型別的指令碼語言索引可以儲存不同的資料型別.
(2)var 陣列的名稱=[值1,值2,值3,…]
(3)var 陣列的名稱=new Array()
例:

<script type="text/javascript">
	var arr=new Array('Hello','InLett',100,true,34.23);
//	根據索引獲取值
	alert(arr[1]);//輸出結果InLett
</script>

重點:通過遍歷陣列的方式來獲取陣列中的資料
4.運算元組資料的方式
(1)join():將陣列成員通過一個分割符合併成字串
例:

<script type="text/javascript">
//	(1)join():將陣列成員通過一個分割符合併成字串
	var arr=[12,23,1,0,23,45];
	var str=['L','O','V','E'];
//	alert(str.join('-'));//輸出結果為L-O-V-E
	alert(arr.join('*'));	//輸出結果為12*23*1*0*23*45
</script>

在這裡插入圖片描述在這裡插入圖片描述
(2)push()和pop(): 在陣列的最後新增或是刪除成員
例:

<script type="text/javascript">
	var arr1=['html','JavaScript','css'];
	var num= arr1.push('jQuery'); 
	alert(arr1);
</script>

在這裡插入圖片描述
例:

<script type="text/javascript">
	var arr1=['html','JavaScript','css'];
	arr1.pop();
	alert(arr1);
</script>

在這裡插入圖片描述
(3)unshift()和shift(): 在陣列的最前面新增或是刪除成員
例:

<script type="text/javascript">
	var arr1=['html','JavaScript','css'];
	arr1.unshift('jQuery');
	alert(arr1);
</script>

在這裡插入圖片描述
例:

<script type="text/javascript">
	var arr1=['html','JavaScript','css'];
	arr1.shift();
	alert(arr1);
</script>

在這裡插入圖片描述
(4)reverse(): 表示為將陣列的資料進行翻轉
例:

<script type="text/javascript">
	var num1=[1,2,3,4,5,6];
	num1.reverse();
	alert(num1);
</script>

在這裡插入圖片描述
(5)indexOf()和lastIndexOf:這兩個方法都是用來搜尋整個陣列中具有給定值的元素,返回找到的第一個元素的索引,如果沒找到,則返回-1.
indexOf表示返回陣列中元素第一次出現的索引值,
lastIndexOf則是反向搜尋.
例:

<script type="text/javascript">
	var num2=[1,2,13,1,2,2];
	var index= num2.indexOf(2);//返回第一次出現2的索引
	alert(index);//輸出結果為1
</script>

例:第一個值表示要查詢的資料;第二個值表示起始要查詢的索引;查詢不到返回-1

<script type="text/javascript">
	var num2=[1,2,13,1,2,2];
	var index= num2.indexOf(2,3);
	//var index=num2.indexOf(2,6);  //查詢不到返回-1
	alert(index);//輸出結果為4
</script>

(6)splice():在陣列中新增成員
例:

<script type="text/javascript">
	var num4=[1,2,3,4,5,6];
	num4.splice(1,2,7,8,9);//第一個值1表示要開始新增成員的索引位置;第二個值2表示刪除2兩個成員(包含自身);第三個值7,8,9 表示 在此位置上新增 7,8,9
	alert(index);//輸出結果為1789456
</script>

(7)slice():從一個數組中選擇(擷取)元素
例:第一個值表示開始擷取的位置索引;第二個值表示擷取結束位置的索引,但是並不包含結束位置索引所對應的成員

<script type="text/javascript">
	var num5=[2,3,4,5,6,7];
	var num6= num5.slice(2,4);
	alert(num6);//輸出結果為4,5
</script>

(8)sort():返回排序後的陣列.如果陣列包含undefined,會被排序到陣列的尾部.如果不帶引數的用sort(),陣列元素以字母表順序排序.

<script type="text/javascript">
	var a=[2,33,1111,444];
	a.sort();
	alert(a);
</script>

在這裡插入圖片描述

<script type="text/javascript">
	var a=['a','c','g','j','r','e','d','q','z','u'];
	a.sort();
	alert(a);
</script>

在這裡插入圖片描述

<script type="text/javascript">
	var c=['a','abc','def','b','zyujg','jgi','j',1,222,777,55,44,66,8888,99];
	c.sort();
	alert(c);
</script>

在這裡插入圖片描述
如果是數字從小到大排序:

<script type="text/javascript">
	var a=[2,33,1111,444]
	a.sort(function(a,b){
		return a-b
	})
	alert(a);
</script>

在這裡插入圖片描述
(9)concat():建立並返回一個新的陣列
例:

<script type="text/javascript">
	var a = [1,2,3];      
	var b = a.concat(4,5);         
	var c = a.concat([4,5]);         
	console.log(a); //返回的還是1,2,3
	console.log(b); //返回1,2,3,4,5
	console.log(c);  //返回1,2,3,4,5
</script>

這個方法還可以用來複制陣列。
例:

<script type="text/javascript">
	var a = [1,2,3];        
	var b = a.concat();                 
	console.log(a); //返回1,2,3
	console.log(b); //返回1,2,3
</script>

(10).toString()和toLocaleString()

toString()方法將每個元素轉化為字串,類似於不傳參的join()方法.

toLocaleString()方法是toString()的本地化版本.
(11).forEach()方法,從頭至尾遍歷陣列,為每個元素呼叫指定的函式.
例:

<script type="text/javascript">
	var a = [1,2,3,4,5];       
	var sum = 0;             
	a.forEach(function (value) {
	    sum += value
	})             
	console.log(sum); //sum = 15
</script>

(12)map()方法:
和forEach()類似,呼叫陣列的每個元素傳遞給指定函式,並返回一個數組,所以它和forEach()的區別在於,有一個返回值.不修改原陣列,返回的陣列長度和原陣列相同.
例:

<script type="text/javascript">
	var a = [1,2,3,4,5];             
	var b = a.map(function (value) {
  		  return value+1
	})         
	console.log(b); //返回2,3,4,5,6
</script>

(13)filter()方法,返回的是呼叫陣列的一個子集。
例:

<script type="text/javascript">
	var a = [1,2,3,4,5];          
	var b = a.filter(function (value) {
  		return value > 3
	})         
	console.log(b); //返回4,5
</script>

注:如果使用map()方法,返回的是false, false, false, true, true
filter()會跳過稀疏陣列中缺少的元素,他的返回陣列總是稠密的.所以可以用一下方法來壓縮稀疏陣列的空缺.
例:

<script type="text/javascript">
	var a = [1,2,,,5];          
	var b = a.filter(function (value) {
  		 return true
	})         
	console.log(b); //返回1,2,5
</script>

(14)every()和some()
every()方法是隻有陣列中所以元素都滿足某個條件才會返回true;some()方法是隻要有滿足條件的值,就返回true。
以every()方法為例:

<script type="text/javascript">
	var a = [1,2,3,4,5];
	var b=a.every(function (value) {
		return value < 10
	})
	var c=a.every(function (value) {
   	 	return value % 2 === 0
	}) 
	alert(b); //true
	alert(c)//false
</script>