標籤:
1 isArray方法
該方法是Array對象的靜態方法,用來判斷一個值是否為數組,它可以彌補typeof運算子的不足。
用法是Array.isArray(array執行個體)
通用的判斷對象資料類型的方法是Object.prototype.toString.call(obj) === "[object type]",
比如 Object.prototype.toString.call([1,2,3]) === "[object Array]"
2 Arry執行個體的方法
toString:把數群組轉換為字串,並返回結果。
var arr = [1,2,3];arr.toString()//"1,2,3"
上面可以看出一個小技巧:通過toString方法可以直接將數組分割為逗號連結的字串,結果跟arr.join()差不多。
push:向數組的末尾添加一個或更多元素,並返回新的長度。
var arr = [1,2,3];arr.push.apply(arr, [4,5]);//[1,2,3,4,5]
// arr.push.call(arr, [6,7])的結果呢?[1,2,3,4,5,[6,7]]
你知道為什麼上面的結果是[1,2,3,4,5]嗎?因為Function.prototype.apply方法的第二個參數是個數組或者類數組,我現在傳的是個數組,apply方法會認為我要傳二個參數,相當於是執行arr.push(4,5).
join:把數組的所有元素放入一個字串。元素通過指定的分隔字元進行分隔。
大家知道通過call或者apply方法可以調用別的對象(比如Array)的方法,那麼字串對象也可以調用Array的join方法,看下面:
var s = "mengxiang";[].join.call(s, "-") //"m-e-n-g-x-i-a-n-g"
concat:串連兩個或更多的數組,並返回結果。
注意事項:當數組中包含對象時,新的數組中包含的是對象的引用,很多人稱之為淺拷貝。
var o = {a:1};var oldArray = [o];var newArray = oldArray.concat();//[{a:1}]o.a = 2;newArray; //[{a:2}]
從上面的例子可以看到,當修改對象的成員的值時,newArray的值也隨之改變了,可以驗證我們的結論。
slice:從某個已有的數組返回選定的元素,組成新的數組返回,不修改原數組
小技巧:將類數組轉化為數組,[].slice.call(arguments);
sort:對數組的元素進行排序,預設是按照字典順序排序
arrs = [101,1001,10001,111]arrs.sort()//[10001, 1001, 101, 111]
sort支援函數作為第一個參數,該函數本身又接受兩個參數,表示進行比較的兩個元素。如果傳回值大於0,表示第一個元素排在第二個元素後面;其他情況下,都是第一個元素排在第二個元素前面。
JavaScript Array對象 知識點總結