一、instanceof html
if(value instanceof Array) { }
這種方法存在的問題是:假定單一的全局執行環境。若是網頁中包含多個框架,存在兩個以上的不一樣全局執行環境,那麼存在兩個以上的不一樣版本的Array構造函數。正則表達式
若是從一個框架像另外一個框架傳入數組,那麼傳入的數組與在第二個框架中元素構建的數組分別具備不一樣的構造函數。數組
二、isArray框架
if(Array.isArray(value)){}
這是instanceof缺陷的解決方案,兼容性:IE9+, Firefox4+, safari5+, opera10.5+函數
全部對象都有這兩個方法。對於數組:測試
---------------mutator-----------改變數組自身--------------------this
push, pop spa
後進後出, pop返回被刪元素,push返回數組長度code
unshif, shift htm
前進前出, shift返回被刪元素,unshift返回數組長度
reverse 根據數組索引排序
根據數組索引,倒序排列
sort 根據數組元素排序 (https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)
用法 array.sort(compareFunction);
排序函數compareFunction 若是沒指明compareFunction,按照Unicode碼排序。
compareFunction(a, b) { //比較函數參數默認爲a, b
//返回值小於0, a排到b以前
//返回值等於0, a, b相對位置不變
//返回值大於0, b排到a以前
}
splice 返回被刪元素組成的數組
添加或刪除數組中的一個或多個元素.
array.splice(index, howMany, [e0, e1, ...]) array.splice(操做位置,刪多少, 加的元素)
var a = [1,2,3,4]; var b = a.splice(1, 2, [7,8]); var c = [1,2,3,4]; var d = c.splice(1, 2, 7,8);
// a: [1, [7,8], 4]
// b, d: [2,3]
// c: [1,7,8,4]
--------------Accessor------------這些過程不改變數組自身-----------
concat 合併數據
array.concat(value1, value2, ..., valueN) valueN能夠爲單個值,也能夠爲數組。合併的結果都同樣。
合併獲得的是一個新數組,原來的數組不變。
var num1 = [1, 2, 3]; var num2 = [4, 5, 6]; var num3 = [7, 8, 9]; // 組成新數組[1, 2, 3, 4, 5, 6, 7, 8, 9]; 原數組 num1, num2, num3 未被修改 var nums = num1.concat(num2, num3);
slice 淺拷貝 shallow copy
array.slice(begin[, end])
把數組中一部分的淺複製(shallow copy)存入一個新的數組對象中,並返回這個新的數組
indexOf
arr.lastIndexOf(searchElement, fromIndex)
lastIndexOf
arr.IndexOf(searchElement, fromIndex)
join
---------------------------迭代------------------------------
every 不會改變原數組
若是數組中每個元素都知足參數中提供的測試函數,則返回真,若是某個元素不知足,則返回false,當即終止循環。every
遍歷的元素範圍在第一次調用 callback
以前就已肯定了。
arr.every(callback[, thisArg])
callback
被調用時傳入三個參數:元素值,元素的索引,原數組。 即:(element, index, array)
forEach
讓數組的每一項都執行一次給定的函數 array.forEach(callback[, thisArg])
沒有辦法停止 forEach 循環。
some
測試數組中的某些元素是否經過了指定函數的測試。
some
爲數組中的每個元素執行一次 callback
函數,直到找到一個使得 callback 返回一個「真值」,則返回真,當即終止循環。
filter
利用全部經過指定函數測試的元素建立一個新的數組,並返回。返回知足條件的元素構成的數組。
filter
爲數組中的每一個元素調用一次 callback
函數,並利用全部使得 callback
返回「真值」(便可轉換爲布爾值 true 的值)的元素建立一個新數組。
map
返回一個由原數組中的每一個元素調用一個指定方法後的返回值組成的新數組。