文章出處

平時多做企業應用開發,抱著實用為主,對前端技術理解得比較膚淺,下面就是膚淺地對 js 數組的屬性和方法及對它操作的 jquery 方法做些記錄;

 

js 數組是 js 內建的一個非常強大數據類型,由于 js 是弱類型語言,所以一個數組可以保存多種類型的數據: 數字、字符串、對象、函數、布爾... ...;

var arr = [1,{name:'Jonh',id:1001}, function(){console.log('test');},'hello world',true]; 

 

常用訪問數組元素的方法:

for 和 for-in 在循環時,如果數組大小做了改變,使用起來會有所區別;

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

// for,  因為 testArr1.length 是一個常數 5, 循環過程 testArr1 大小變了,循環次數還是 5;
for(var i = 0; i < testArr1.length; ++i){
    if(i == 3) testArr1.push(6); // 添加一個元素;
    console.log(testArr1[i]); // 訪問不到新加的元素 6; 
}


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

// for-in 如果循環過程中 testArr2 的大小變了, i 如果大于了改動后的 testArr2.length,會馬上終止循環
for(var i in tsetArr2){
  if(i==3)testArr2.push(6); // 添加一個元素; 
  console.log(testArr2[i]); // 可訪問到新加的元素 6;    
}

jquery 循環: $.each, $.grep, $.map 與 for 最大不同是循環過程不能退出,即一定會訪問數組中的每個元素到結束;而for 可以用 break 中斷循環;

 

var testArr = [1,2,3];

//訪問數組元素;
$.each(arr,function(index,elem){
});

// 返回符合條件的元素,組成一個新的數組;
//注意 function(elem,index) 第一個實參是元素,第二個才是元素的索引
var newArr = $.grep(arr,function(elem,index){
     //condition
     return elem==1 or elem ==2; 
});
// newArr is [1,2]


// 返回任意新的數組元素,組成 一個新的數組;
var newArr = $.map(arr,function(index,elem){
    return 'test-' + index;
});
// newArr is ['test-1','test-2','test-3']; 

 

 識別數組:

// 數組是一種特殊的 object 類型,typeof 拿到的只是 object; 
typeof arr; // => object

// 可用下面 2 種方法判斷對象是否為數組
arr.constructor.toString().indexOf('Array') > 0
// 
Object.prototype.toString.call(arr) == '[object Array]'

常用方法:

// join 將數組中的元素組合成一個字段串,元素之間用指定的字符串連接起來;
arr.join(','); //"1,[object Object],function (){console.log('test');},hello world,true"

// push 向數組添加新的元素, 數組改變;
arr.push('new'); 

// pop 彈出最后一個元素,數組改變;
arr.pop(); // 'new'

// slice(startIdx, count) 獲取數組中一段連續的元素,組成一個新的數組;startIdx 開始索引,count 數量;
arr.slice(0,1); //[1]; 

// splice(startIdx,count,otherElems)  有強大的功能,包括: 插入,替換,刪除;startIdx 開始索引, count (替換,刪除)數量, 數組改變并返回一個新的數組;
// 替換
var testArr = [1,2,3,4,5]; 
var retArr = testArr.splice(0,2,7,8,9);//retArr is [1,2], testArr is [7,8,9,3,4,5], "7,8,9" 是替換 "1,2"; 
// 刪除,省略 otherElems 就是刪除
var testArr = [1,2,3,4,5]; 
testArr.splice(0,2); // testArr is [3,4,5]; 
//插入,將 count =0 ,即不作替換直接插入
var testArr = [1,2,3,4,5];
testArr.splice(2,0,7,8,9); //testArr is [1,2,7,8,9,3,4,5]; 

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()