js陣列的一些用法

qxianx發表於2018-08-04

陣列作為js中比較常用的一個容器,簡單記錄一些常用的方法,作為查詢工具使用;

1 宣告

var array1=new Array();//比較標準的方式
var array2=[];//也可以隨意一些
var array3=[1,2,3,4];//直接初始化

2 新增移除元素;array.push(item...);array.pop();

		var array1=[];
		array1[0]=1;//直接賦值,且不用擔心下標越界的問題
		array1.push(2);//直接在後面追加 
		array1.push(3);// array1[1,2,3]
		array1.pop();//末尾刪除 類似堆疊(stack) array1[1,2]
		array1.push(3,4);//也可以同時多個 array1[1,2,3,4]
		array1.push([5,6,7,],8);//不限制型別 array1[1,2,3,4,[5,6,7],8]

3 遍歷

		var array1=[10,20,30,40];
		//迴圈前一般需要做下判斷
		if(array1&&array1.length){
			//TO-DO 
		}else{
			//陣列不存在或者 為空的情況
		}
		array1.forEach(function(item,index){//forEach;比較少用
			console.log('forE:'+item);
		});
		array1.forEach((i,index)=>{//forEach + Lambda表示式
			console.log("forEach:"+i);
		});
		for(var a in array1){// 不考慮順序可以用;比較少用
			console.log('a:'+array1[a]);
		}
		for(var i=0;i<array1.length;i++){//普通for迴圈 排序時使用;一般的用法
			console.log('for:'+array1[i]);
		}
		for(var i=0,j=0;j=array1.length,i<j;i++){//陣列比較大時的一點兒優化
			console.log('forj:'+array1[i]);
		}
		

4 複製,檢索,移除array.slice(start,end);array.splice(start,deleteCount,item...);array.indexOf();

		//slice方法針對array中的一段做淺複製
		//第一個引數是起始位置,第二個可選,預設是陣列的長度
		//一般來說 擷取後的值a + 擷取後的陣列值就是 擷取前完整的陣列的值
		var array2=['a','b','c','d'];
		var a=array2.splice(0,1);//a-['a'];array2-['b','c','d']
		var b=array2.splice(1);//b-['c','d'];array2-['b']
		
		//splice方法從array中移除一個或多個元素,並用新的元素替換他們
		var array3=[111,222,333,444];
		var b=array3.splice(2,1,555,666);//b-[333],array3-[111,222,555,666,444]
		
		//indexOf 判斷陣列是否包含某個元素,一般可以配合 splice方法刪除元素
		//當然返回的結果是第一個匹配成功的,若需要全部刪除還需要另外考慮
		var array4=[111,222,333];
		var index = array4.indexOf(222);//index==1
		if(index > -1) {
			array4.splice(index, 1);//array4-[111,333]
		}
		

5 反轉,排序 array.reverse();array.sort();目前暫時沒有使用到

 

相關文章