javascript
javascript Array方法总结
Array
-
toString() 返回數(shù)組中每個值的字符串形式拼接而成的以逗號分隔的字符串
var arr = [1,2,4,5]; console.log(arr.toString());//1,2,4,5 -
valueOf() 返回的還是數(shù)組
var arr = ["1","2","4","5"]; console.log(arr.valueOf());//["1","2","4","5"] -
join() 返回字符串,使用不同分隔符來構(gòu)建字符串【默認為逗號】
var arr = [1,2,3,4,5]; console.log(arr.join());//1,2,3,4,5 console.log(arr.join(""));//12345 console.log(arr.join("|"));//1|2|3|4|5
棧方法
push() 棧方法,添加到數(shù)組末尾,返回修改后數(shù)組的長度
pop() 棧方法,從數(shù)組末尾移除最后一項,返回移除的項
隊列方法
shift() 隊列方法,取得數(shù)組第一項
-
unshift() 隊列方法,添加到數(shù)組前端
var colors = []; var count = colors.push("red","blue"); // 2 //colors = ["red","blue"];count = colors.unshift("green","white"); //4 //colors = [“green”,"white","red","blue"]colors.pop(); //"blue" colors.shift(); //"green"
重排序方法
reverse() 反轉(zhuǎn)數(shù)組項的順序,返回值是經(jīng)過反轉(zhuǎn)后的數(shù)組
-
sort() 默認按照升序排列數(shù)組【調(diào)用每個數(shù)組項的toString()方法比較字符串。即使數(shù)組都是數(shù)值,也是比較字符串】,可接受比較函數(shù)作為參數(shù)。返回值是經(jīng)過排序后的數(shù)組
var arr = [10,2,7,3,5]; arr.reverse();//[5,3,7,2,10] arr.sort();//[10,2,3,5,7]function compare1(v1,v2){if(v1 < v2)return -1;else if( v1 > v2)return 1;else return 0; }arr.sort(compare1);//[2,3,5,7,10]//另一種更為簡便的方式 function compare2(v1,v2){return v2-v1; }arr.sort(compare2);//[10,7,5,3,2]
操作方法
-
concat() 基于當前數(shù)組中所有項創(chuàng)建一個新數(shù)組。在沒有參數(shù)的時候,只是復制當前數(shù)組并返回副本。有參數(shù)則將值添加到數(shù)組末尾
var colors=["red","blue"]; var colors2 = colors.concat("yellow",["black","white"]); //["red","blue","yellow","black","white"] -
slice() 創(chuàng)建一個新數(shù)組。
slice(start,end),返回起始和結(jié)束位置之間的項【不包括結(jié)束位置】。結(jié)束位置小于起始位置返回空數(shù)組
slice(start),返回從start位置到末尾的所有項
若是負數(shù),用數(shù)組長度+該負數(shù)來表示位置
-
splice() 返回被刪除的項。splice(start,delete_count,insert_item[可選])
刪除 splice(start,count) start要刪除的第一項的位置,count要刪除的項數(shù)
插入 splice(start,0,inserts) start要插入的位置,0(要刪除的項數(shù)為0),inserts要插入的項(可以是任意多個項)
-
替換 splice(start,d_count,inserts) start起始位置,d_count為要刪除的項數(shù),inserts為要插入的項。插入的項數(shù)與刪除的項數(shù)不必相等。
var colors = ["red","green","blue","black","yellow"];var removed = colors.splice(0,1);//刪除第一項//colors = ["green","blue","black","yellow"];//removed = ["red"]removed = colors.splice(1,0,"pink","orange");//從位置1開始插入2項//colors = ["green","pink","orange","blue","black","yellow"];//removed = [];沒有刪除元素,返回空數(shù)組removed = colors.splice(1,1,"red","purple");//從位置1刪除一個,再插入2項//colors = ["green","red","purple","orange","blue","black","yellow"];//removed = ["pink"];
位置方法
indexOf() 從數(shù)組開頭開始查找所在項的位置
-
lastIndexOf() 從數(shù)組末尾開始向前查找
比較參數(shù)和數(shù)組中每一項時,使用全等操作符。=== 沒有找到時返回-1
迭代方法。對數(shù)組中每一項運行給定函數(shù)。
every() 若函數(shù)對每一項都返回true,則返回true
filter() 返回這個函數(shù)會返回true的數(shù)組
forEach() 沒有返回值,本質(zhì)上與使用for循環(huán)迭代數(shù)組一樣。
map() 返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組
some() 如果函數(shù)對任一項返回true,則返回true
【兼容性】IE9+,Chrome,Firefox 2+,Safari 3+,Opera 9.5+支持
【注意區(qū)分every()和some()】
var numbers=[1,2,3,4,5,6,7];var everyResult = numbers.every(function(item,index,array){return (item > 3); }); //everyResult的值為false。因為1,2,3返回的是flase,而每一項都返回true才會返回truevar someResult = numbers.some(function(item,index,array){return (item > 3); }); //someResult的值為true。因為有返回true的值,則返回truevar filterResult = numbers.filter(function(item,index,array){return (item > 2); }); //filterResult的值為[3,4,5,6,7],返回符合條件的值var mapResult = numbers.map(function(){return item*2; }); //mapResult的值為[2,4,6,8,10,12,14],返回每個數(shù)的結(jié)果歸并方法
reduce() 從數(shù)組第一項開始,逐個遍歷到最后
reduceRight() 從數(shù)組的最后一項開始,向前遍歷到第一項
都支持4個參數(shù)。(prev【前一個值】,cur【當前值】,index【項的索引】,array【數(shù)組對象】)
reduce()和reduceRight()的差別在于從哪頭開始遍歷數(shù)組。除此之外都一樣。
【兼容性】IE9+,Chrome,Firefox 3+,Safari 4+,Opera 10.5支持
這個函數(shù)返回的任何值都會作為第一個參數(shù)自動傳給下一項。第一次迭代從數(shù)組的第二項開始。
總結(jié)
以上是生活随笔為你收集整理的javascript Array方法总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《高性能MySQL》の复制
- 下一篇: [转]ExtJS Grid 分页时保持选