js數組常用方法

	<script type=text/javascript charset=utf-8>
			
				/**
				 * 	 數組本身也是對象
				 * 	 js中數組類似於java裏的map容器 長度可隨意改變 ,元素類型任意
				 * 
				 */
				var arr = new Array();
				var arr = [1,2,3,4,true ,'abc' , new Date()] ;
				alert(arr.length);
				arr.length = 5 ;
				alert(arr.toString()); // [object object]
				
				/**
				 *  push 和 pop 方法
				 */
				var arr = [new Date(),false] ;
				var result = arr.push(1,2,true);	//push方法向數組中追加元素(返回值爲新數組的長度)
				alert(arr);
				alert(result);
				var obj = arr.pop();		//從數組的尾部移除一個元素(返回值爲移除的元素)
				alert(arr);
				alert(obj);
				
				/**
				 * shift 和 unshift 方法
				 */
				var  arr = [1,2,3, true , new Date()];
				var r1 = arr.shift();			//從頭部移除一個元素(返回移除的元素)
				alert(arr);
				alert(r1);
				var r2 = arr.unshift(10,false);	//從頭部插入多個元素(返回新數組的長度)
				alert(arr);
				alert(r2);
				
				/**
				 * splice、slice 方法 (截取的方法)
				 * splice方法操作數組本身
				 * slice方法不操作數組本身
				 * 
				 */
				// splice: 第一個參數 :起始位置
				// 		    第二個參數 :表示截取的個數
				// 			第三個參數以後:表示追加的新元素個數
				
				var arr = [1,2,3,4,5];
				arr.splice(1,2,3,4,5);	// 134545
				alert(arr);
				
				// slice://返回截取的內容 //截取範圍 (左閉右開區間)
				var arr = [1,2,3,4,5];
				var reuslt = arr.slice(2,4);   
				alert(reuslt);		//3,4     
				
				//操作數組的方法: concat join
				var arr1 = [1,2,3];
				var arr2 = [true , 4 , 5];
				var reuslt = arr1.concat(arr2);		//合併粘連的操作(不操作數組本身)
				alert(reuslt);
				var result = arr1.join('-');		//在每個元素之間加入內容(不操作數組本身)
				alert(arr1); 
				alert(result);
				
				/**
				 * sort排序 
				 * reverse倒敘
				 */
				var arr1 = [5,2,1,4,3];
				var arr2 = [10,2,4,1,7];
				
				arr1.sort();
				arr1.reverse();		//倒敘排序 是按照集合的位置進行倒敘的
				alert(arr1);
				arr2.sort();
				alert(arr2);		// 1 10 2 4 7
				
				function compare(value1 , value2){
					if(value1 < value2){
						return -1 ;
					} else if(value1 > value2){
						return 1 ; 
					} else {
						return 0 ;
					}
				}
				arr2.sort(compare);
				alert(arr2);
				
		</script>


<script type=text/javascript charset=utf-8>

						var arr = [1,2,3,4,5,4,3,2,1];

						//位置的方法: indexOf lastIndexOf
						// 1個參數的時候表示傳值 返回索引位置(index從0開始)
						var index = arr.indexOf(4);
						// 2個參數的時候 第一個參數表示起始位置 第二個參數還是值
						var index = arr.indexOf(4,4);
						alert(index);
						//他們查找數組比較的時候 '==='
						// lastIndexOf
						var index = arr.lastIndexOf(2);
						alert(index);


						//5個新加迭代的方法
						//every :對於數組每一個元素進行一個函數的運行 如果都返回true 最後則返回true 如果有一個返回false最後結果則返回false
						var result = arr.every(function(item , index , array){
							return item > 2 ;
						});
						alert(result);

						//filter :對於數組的每一個元素進行一個函數的運行 給定的函數去執行 把過濾後的結果返回
						var result = arr.filter(function(item , index , array){
							return item > 2 ;
						});
						alert(result);

						//forEach :循環數組每一項的值 並執行一個方法
						arr.forEach(function(item, index, array){
								alert(item);
						});

						//map 對於數組的每一個元素進行一個函數的運行 可以經過函數執行完畢後 把新的結果返回
						var result = arr.map(function(item, index, array){
							return item*2;
						});
						alert(result);

						//some :對於數組每一個元素進行一個函數的運行 如果有一項返回true 最後則返回true 如果每一項都返回false最後結果則返回false
						var result = arr.some(function(item, index, array){
							return item >=5 ;
						});
						alert(result);

						//reduce    reduceRight
						//變量的起始位置不同
						//前一個值 , 當前值 , 索引位置 , array
						var result = arr.reduce(function(prev , cur , index , array){
									return prev + cur ;
						});
						alert(result);

						var result = arr.reduceRight(function(prev , cur , index , array){
									return prev + cur ;
						});
						alert(result);

		</script>


發佈了151 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章