數組基本篇二
數組對象
1.聲明數組的要領
Array是 Javascript 的原生對象,同時也是一個組織函數,能夠用它天生新的數組。
var arr =new Array(3);//length:3等同於var arr=Array(3);不發起運用上面的要領天生新數組
引薦運用這類要領天生數組var arr = [1, 2];
2.數組的要領
2.1 Array.isArray()
Array.isArray要領返回一個布爾值,示意參數是不是為數組。
2.2 valueOf(),toString()
valueOf要領是一個一切對象都具有的要領,示意對該對象求值。差別對象的valueOf要領不盡一致,數組的valueOf要領返回數組自身。
toString要領也是對象的通用要領,數組的toString要領返回數組的字符串情勢。
2.3 push(),pop()
push要領用於在數組的末尾增加一個或多個元素,並返回增加新元素后的數組長度。
pop要領用於刪除數組的末了一個元素,並返回該元素。對空數組運用pop要領,不會報錯,而是返回undefined。
2.4 shift(),unshift()
shift要領用於刪除數組的第一個元素,並返回該元素。
unshift要領用於在數組的第一個位置增加元素,並返回增加新元素后的數組長度。
2.5 join()
join要領以指定參數作為分隔符,將一切數構成員銜接為一個字符串返回。經由過程call要領,這個要領也能夠用於字符串或類似數組的對象。
2.6 concat()
concat要領用於多個數組的兼并。它將新數組的成員,增加到原數構成員的後部,然後返回一個新數組,原數組穩定。
除了數組作為參數,concat也接收其他範例的值作為參數,增加到目標數組尾部。
2.7 reverse()
reverse要領用於倒置分列數組元素,返迴轉變后的數組。
2.8 slice()
slice要領用於提取目標數組的一部分,返回一個新數組,原數組穩定。arr.slice(start, end);slice沒有參數,即是返回一個原數組的拷貝。
2.9 splice()
splice要領用於刪除原數組的一部分成員,並能夠在刪除的位置增加新的數構成員,返回值是被刪除的元素。
arr.splice(start, count, addElement1, addElement2, ...);
splice的第一個參數是刪除的肇端位置(從0最先),第二個參數是被刪除的元素個數。假如背面另有更多的參數,則示意這些就是要被插進去數組的新元素。
2.10 sort()
sort要領對數構成員舉行排序
var arr = [1,7,3,5,9,6]; arr.sort(function(a,b){ return a-b }) console.log(arr)// [1, 3, 5, 6, 7, 9]
var arr = [ {name:"張三",age:18}, {name:"王五",age:3}, {name:"李四",age:9} ]; arr.sort(function(a,b){ return a.age-b.age }) console.log(arr) // [{name:"王五",age:3},{name:"李四",age:9},{name:"張三",age:18}]
2.11 map()
map要領將數組的一切成員順次傳入參數函數,然後把每一次的實行效果構成一個新數組返回。
var arr=[1,2,3,4] var arr1=arr.map(function(n){ return n+1 }) console.log(arr1)//[2, 3, 4, 5] console.log(arr)//[1, 2, 3, 4]
map要領接收一個函數作為參數。該函數調用時,map要領向它傳入三個參數:當前成員、當前位置和數組自身。
2.12 forEach()
forEach要領與map要領很類似,也是對數組的一切成員順次實行參數函數。然則,forEach要領不返回值,只用來操縱數據。這就是說,假如數組遍歷的目標是為了獲得返回值,那末運用map要領,不然運用forEach要領。
forEach的用法與map要領一致,參數是一個函數,該函數一樣接收三個參數:當前值、當前位置、全部數組。
var arr=[1,2,3,4] arr.forEach(function(value,key){ console.log(key+':'+value) })
2.13 filter()
filter要領用於過濾數構成員,滿足前提的成員構成一個新數組返回。它的參數是一個函數,一切數構成員順次實行該函數,返回效果為true的成員構成一個新數組返回。該要領不會轉變原數組。
2.14 some(),every()
這兩個要領,返回一個布爾值,示意推斷數構成員是不是相符某種前提。
它們接收一個函數作為參數,一切數構成員順次實行該函數。該函數接收三個參數:當前成員、當前位置和全部數組,然後返回一個布爾值。
some要領是只需一個成員的返回值是true,則全部some要領的返回值就是true,不然返回false。every要領是一切成員的返回值都是true,全部every要領才返回true,不然返回false。
2.15 reduce(),reduceRight()
reduce要領和reduceRight要領順次處置懲罰數組的每一個成員,終究累計為一個值。它們的差別是,reduce是從左到右處置懲罰(從第一個成員到末了一個成員),reduceRight則是從右到左(從末了一個成員到第一個成員),其他完整一樣。
var arr=[1,2,3,4] arr.reduce(function(a,b){ console.log(a+b)//3,6 return a+b//15 })//15
2.16 indexOf(),lastIndexOf()
indexOf要領返回給定元素在數組中第一次湧現的位置,假如沒有湧現則返回-1。indexOf要領還能夠接收第二個參數,示意搜刮的最先位置。
lastIndexOf要領返回給定元素在數組中末了一次湧現的位置,假如沒有湧現則返回-1。這兩個要領不能用來搜刮NaN的位置,即它們沒法肯定數構成員是不是包括NaN。