文章出處
文章列表
平時多做企業應用開發,抱著實用為主,對前端技術理解得比較膚淺,下面就是膚淺地對 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];
文章列表
全站熱搜