數組的定義: JavaScript 中的數組是一種特殊的對象,用來表示偏移量的索引是該對象的屬性,索引可能是整數。然而,這些數字索引在內部被轉換為字元串類型,這是因為 JavaScript 對象中的屬性名必須是字元串。在內部被歸類為數組。由於 Array 在 JavaScript 中被當作對象,因此 ...
數組的定義:
JavaScript 中的數組是一種特殊的對象,用來表示偏移量的索引是該對象的屬性,索引可能是整數。然而,這些數字索引在內部被轉換為字元串類型,這是因為 JavaScript 對象中的屬性名必須是字元串。在內部被歸類為數組。由於 Array 在 JavaScript 中被當作對象,因此它有許多屬性和方法可以在編程時使用。
使用數組:
1.創建數組
① 使用 [] 操作符 ,var arr=[] ,該方法效率最高。
② 調用 Array 的構造函數創建數組,var myArr=new Arrery()
2.讀寫數組
3.由字元串生成數組,調用字元串對象的split()方法。
4.對數組的整體性操作:(這裡註意,曾經面試題出現)
淺複製:將數組a賦值給數組b,此時的數組b只是對數組a的引用,當數組a發生改變時,數組b也隨著發生改變。
var a=[]; for(var i=0;i< 5;i++){ a[i]=i; } var b=a; console.log(a[1]); console.log(b[1]);//賦值引用前 1 a[1]=999; console.log(a[1]); console.log(b[1]);//賦值引用後 999
深複製:可以封裝一個copy()方法。
存取數組:
1.查找元素:indexOf() lastIndexOf()
2.數組的字元串表示:將數組轉化為字元串:join() toString()
說到這裡的toString(),我想起了toString() 與valueof() 的隱式調用。這裡很有意思,也略坑,不嚴謹的說下,當需要計算式,會隱式調用valueof()。當需要顯示數據或者結果時會調用toString()。有興趣的同學可以google一下。
3.由已有的數組創建新數組:
concat()方法合併已有的多個數組,創建新數組
splice()方法截取出一個數組的子集創建新數組
可變函數:
1.為數組增添元素:
push()方法將元素增添至末尾, unshift()將元素增添至開頭
2.從數組中刪除元素:
pop() 方法可以刪除數組末尾的元素
Shift() 方法可以刪除數組的第一個元素
3.從數組中間位置添加和刪除元素:splice()
4.數組排序:正序(字典順序):sort(), 倒序;reverse()
迭代器:
對數組的每個元素運用一個函數,可以返回一個值,一組值或一個新數組
- 不生成新數組的迭代方法; forEach() every() some() reduce()
- 生成新數組的迭代方法;:map() 和 filter()。
二維和多維數組:
1.創建二維數組
JavaScript 只支持一維數組,但是通過在數組裡保存數組元素的方式,可以創建多維數組。二維數組類似由行和列構成的數據表格。在 JavaScript 中創建二維數組,先創建一個數組,然後讓數組的每個元素也是一個數組。
這裡 通過擴展數組對象增加一個新方法,該方法設定數組的行數、列數和初始值。下麵是這個方法的定義(引用JavaScript: The Good Parts(O’Reilly)一書的一段代碼):
Array.matrix = function (numrows, numcols, initial) { var arr = []; for (var i = 0; i < numrows; ++i) { var columns = []; for (var j = 0; j < numcols; ++j) { columns[j] = initial; } arr[i] = columns; }
2.處理方式i:使用嵌入式的for迴圈
對象數組:
數組除了包含基本數據類型元素(數字,字元串)還包含對象,數組的方法和屬性對對象依然適用。在對象中,可以使用數組存儲複雜的數據。
註意:本篇是我翻閱《數據結構與演算法javascript描述》的所寫大綱內容的過程筆記,需要深入學習的同學,還需看原書。初學者可以以此作為學習的大綱。至於好厲害的人,忽略本文,當然可以提建議,我定當修改。
本系列文章會持續更新。