JavaScript編程開發教_JS數組

JavaScript編程開發教_JS數組。

(1)JS數組是無類型的:數組元素可以是任意類型,並且同一個數組中的不同元素也可能有不同的類型。 (2)JS數組的索引是基於0 的32位數值。 (3)JS數組是動態的,長度會根據需要動態增長或縮減。 (4)JS數組可能是稀疏的:數組元素的索引不一定要連續,他們之間可以有空缺。 (5)JS數組是JS對象的特殊形式。 (6)JS數組繼承自 Array.prototype中的屬性,它定義瞭一套豐富的數組操作方法。
一、創建數組 (1)數組直接量[ ] 如果省略數組直接量中的某個值,省略的元素將被賦予undefined值。 允許有可選的結尾的逗號,故[ , , ]隻有兩個元素而非三個。
(2)構造函數創建數組 var a = new Array(); //空數組 var a = new Array(10); //指定長度為10 var a = new Array(5, 4, 3, 2, 1, "testing, testing"); //指定元素
二、數組元素的讀和寫 使用[ ] 註意:可以使用負數或者非整數來索引數組。這時候,數值轉換成字符串,字符串作為屬性名來用。

三、稀疏數組 四、數組長度length (1)數組長度會自動增加。 (2)設置length屬性為一個小於當前長度的非負整數n時,當前數組中的那些索引值大於或者等於n的元素將從中刪除。 (3)可以使用Object.defineProperty()設置數組的length屬性為隻讀。
五、數組元素的添加和刪除 Array 對象方法

方法 描述
concat() 連接兩個或更多的數組,並返回結果。
join() 把數組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔。
pop() 刪除並返回數組的最後一個元素
push() 向數組的末尾添加一個或更多元素,並返回新的長度。
reverse() 顛倒數組中元素的順序。
shift() 刪除並返回數組的第一個元素
slice() 從某個已有的數組返回選定的元素
sort() 對數組的元素進行排序
splice() 刪除元素,並向數組添加新元素。
toSource() 返回該對象的源代碼。
toString() 把數組轉換為字符串,並返回結果。
toLocaleString() 把數組轉換為本地數組,並返回結果。
unshift() 向數組的開頭添加一個或更多元素,並返回新的長度。
valueOf() 返回數組對象的原始值

六、數組遍歷 (1)使用優化的for循環 for(var i = 0, len = arr.length; i < len; i++) { //操作 } for(var i = 0, len = arr.length; i < len; i++) { if( !arr[i] ) continue; //跳過null、(undefined和不存在的元素) //循環體 } for(var i = 0, len = arr.length; i < len; i++) { if( arr[i] == undefined ) continue; //跳過(undefined和不存在的元素) //循環體 } for(var i = 0, len = arr.length; i < len; i++) { if( ! (i in arr) ) continue; //跳過 不存在的元素 //循環體 }
(2)使用for/in循環處理稀疏數組。 for(var index in sparseArray) { var value = sparseArray[index]; //此處可以使用索引和值做事情 } 註意:使用for/in循環能夠枚舉繼承的屬性名。‘ 過濾方法: for (var i in a) { if( !a.hasOwnProperty(i)) continue; //跳過繼承的屬性 //循環體 }
(3)使用forEach() var data = [1,2,3,4,5]; var sum = 0; data.forEach(function(x) { sum += x; }); console.log(sum);
七、多維數組 matrix[x][y] 八、數組方法 在Array.prototype中定義瞭一些操作數組的方法,他們可以被任何數組使用。
九、ECMAScript 5中的數組方法 寫在前面:每個方法的第一個參數都是一個函數,函數中最多有三個參數:s數組元素、元素的索引、數組本身。 (1)forEach( ) 從頭至尾遍歷數組,為每個數組元素調用指定的函數。
(2)map() 將調用的數組的每個元素傳遞給指定的函數,並返回一個數組,它包含該函數的返回值。
(3)filter() 該方法返回的數組元素是調用的數組的一個子集。
(4)every()和some() 用來數組的邏輯判定:他們對數組元素應用指定的函數進行判定,返回true或者false。

(5)reduce()和reduceRight() 使用指定的函數將數組元素進行組合,生成單個值。 使用例子??
(6)indexOf()和lastIndexOf() 搜索整個數組中具有給定值的元素,返回找到的第一個元素的索引,如果沒有找到返回-1。 indexOf()正向,lastIndexOf()反向。
十、數組類型 判斷是不是數組的方法: ECMAScript 5 中使用Array.isArray( )判斷。 例子:

發佈留言