學習完一遍之後,看着目錄,採用回顧法學習相關內容,溫故而知新,後面遇到數組的內容慢慢添加進來。
7.1創建數組
數組在JavaScript也是對象,所以對象一般兩種方法創建:
- var a = new Array(10); //創建一個長度爲10的數組
- var a = [1,2,3,4,5,6]; //直接創建一個數組
7.2 數組的讀寫
通過[]來讀取數組數據,實際是將其中的整數,轉換爲字符串作爲屬性讀入,返回值。
試過a[‘1’]和a[1]的效果是一模一樣的。
var a = [1,2,3,4]
a[1]===a['1']
true
7.3稀疏數組
中間有undefined、null值的數組,儘量避免這樣的數組吧
7.4 數組長度
數組長度直接使用object.length即可,如前面所述類似
7.5 數組元素的添加和刪除
添加的方法可以用push,在數組的尾部添加一個元素。
delete a[0] 即可刪掉第一個元素,但是使用delete有個坑,就是它只刪去元素,但是會留下一個undefined在那兒,所以一般推薦使用splice。
7.6 數組的遍歷
直接使用for循環即可遍歷,另外避免使用for in 函數來遍歷,因爲還需要過濾到繼承的屬性。
7.7 多維數組
JavaScript實際上沒有多維數組的概念,但是可以自己添加數組的數組。
7.8 數組的方法
數組的方法:
- Array.join() 和 String.split() 是一對逆向操作。
- Array.reverse()顛倒順序。
- Array.sort()排序,不會按你想的那樣排序;所以需要
a.sort(function(a,b){return b-a});
- Array.concat() 鏈接一個數組,然後返回一個新的數組
- splice(), 最終的方法之一,需要後面詳細寫:
- push() 和 pop():添加到最後一個,彈出最後一個;
- unshifit() 和 shift(): 添加最前面一個,彈出最前面一個;
7.9 EMScript5中的方法
- forEach()
- map()
- filter()
- every() 和 some()
- reduce() 和reduceRight()
//抽時間完成上面方法的例子。
7.10數組類型
新的方法終於解決了typeof不能好好判斷是不是數組的問題
Array.isArray([]),實際上就是使用了
var isArray = Function.isArray || function(o){
return typeof o ==='object' &&
Object.prototype.toString.call(o) === '[object Array]';
}
7.11 類數組對象
7.12 作爲數組的字符串
使用[]代替了charAt()的方法,更加方便,另外可以string可以使用array通用的方法,例如join/filter/match等。