原生js方法數組
建立數組: var arr = []; var arr = new Array(); var arr = [1,2]; var arr = new Array(1,2,3); var arr = new Array(n);
注意:new Array定義數組,會根據參數個數不一樣表明數組不一樣內容
js中數組越界不報錯!而是返回undefined
檢測是否是數組:數據結構
arr instanceof Array //經過構造函數 Array.isArray(arr) Array.prototype.isPrototypeOf(arr) //經過原型 Object.prototype.toString.call(arr) //[Object Array]
遍歷關聯數組(哈希hash數組)app
for(var key in arr){ arr[key] 當前屬性值 }
數組轉成字符串用法函數
arr.valueOf() arr.toString() String(arr):將數組中每一個元素轉爲字符串,並用逗號鏈接。——拍照 arr.join("鏈接符"):將數組中每一個元素轉爲字符串,用自定義的"鏈接符"鏈接每一個元素。 arr.reverse()原數組會改變 arr.sort() 數組排序,按字符串大小排序 arr.concat(otherArr) 合併新元素,返回合併後的新數組 arr.slice(start,end)剪切數組,含頭不含尾 注意:拼接和截取: 都沒法直接修改原數組而是返回新數組,用變量接住 arr.split([ 起始位置 | 要刪除元素的個數 | 要插入元素的值,能夠寫入多個值 ] )剪切數組/替 換/新增 arr.indexOf(item):返回第一個匹配到的元素在數組中所在的位置 or -1 arr.lastIndexOf(item) 注意:IE6, 7, 8 不支持indexOf與lastIndexOf方法
棧和隊列:prototype
arr.push() 尾部添加元素,返回被新數組的長度 arr.pop() 尾部刪除元素,返回被刪除的元素 arr.unshift(item) 頭部添加元素,返回新數組的長度 arr.shift(item) 頭部刪除元素,返回被刪除的元素
ES5 API:code
注意:ES5數組API這些都不會改變原數組,新的數組要用變量接住 參數:[ 調用every的數組的每一項元素 | 對應元素所在的位置 | 表示該數組 ] arr.every(function(item,index,array){}) 該函數對每一項都返回true,則返回true arr.some(function(item,index,array){}) 該函數對其中一項返回true,則返回true arr.filter(callback):返回知足條件的元素組成的數組 arr.map(callback): 對數組每一項進行計算等處理,返回處理結果組成的數組。每一項的結果是true/false arr.reduce(fn) 前一個元素 | 當前元素,從1開始 | 後一個元素的序列,從1開始計數 | 表示該數組 ] _ var arr = [1,2,3,4,5]; var reduceArr = arr.reduce(function(pre,cur,index,array){ return prev + cur; }) //15
ES6 API
...[arr] 數組擴展運算符對象
Math.min(...[arr]) 等同於Math.min.apply(null,arr) 替換數組的apply方法 arr1.push(...arr2) 等同於Array.prototype.push.apply(arr1,arr2) 一個數組添加到另外一個數組的尾部 [...arr1,...arr2,...arr3] 等同於arr1.concat(arr2,arr3) 合併數組 let[first,...const]=[1,2,3,4],結果first=1,const=[2,3,4] 結合解構一塊兒使用
Array.from() 將類數組對象和可遍歷的對象轉換爲真正的數組(包括ES6新增的數據結構Set和Map)排序
Array.from(「hello」) [「h」,」e」,」l」,」l」,」o」] let person={ 0:'張三', 1:'李四', 2:'王五', length:3 //必需要設置對象長度 };
let arr=Array.from(person); 等同於let arr=[].slice.call(person);
Array.of(1,2,3) [1,3,4] 將一組值轉換爲數組 Array()會因參數個數致使行爲有差別
Array.find(function(val,index,arr)) 找到第一個符合條件的數組成員Array.findIndex(function(val,index,arr)) 找到第一個符合條件的數組位置
這兩個方法均可以發現NaN,彌補了數組的IndexOf方法的不足。
arr.includes(value,[start]) 能夠找到NaN
jQuery相關方法隊列
$.each(arr,function(key,value)) $.grep(arr,function(key,value)) //功能類同原生中的arr.filter(fn) $.unique(arr) 過濾DOM數組中重複的元素 $.makeArray(obj) 將類數組對象轉換爲數組 $(elem).toArray() 將jQuery對象集合恢復成DOM數組