js數(shù)組
變量用來存儲數(shù)據(jù),一個變量只能存儲一個內容藕夫。如果你想存儲多個內容孽糖,那么就可以用數(shù)組解決枯冈,一個數(shù)組變量可以存放多個數(shù)據(jù),好比一個團办悟,團你有很多人尘奏。數(shù)組是一個值得集合,每個值都有一個索引號病蛉,從0開始炫加,每個索引都有一個相應的值,根據(jù)需要添加更多數(shù)值铺然。
數(shù)組的方法
即對一個或多個數(shù)組進行的一系列操作
-
數(shù)組連接方法:concat()方法俗孝,用于連接兩個或多個數(shù)組,返回一個新數(shù)組魄健,不改變原來的數(shù)組赋铝,僅僅返回被連接數(shù)組的一個副本。
語法:arrayObject.concat(array1,array2,...,arrayN)
用法如下:<script type="text/javascript"> var mya = new Array(3); mya[0] = "1"; mya[1] = "2"; mya[2] = "3"; document.write(mya.concat(4,5)+"<br>"); document.write(mya); </script>
返回結果:
1,2,3,4,5
1,2,3
-
指定分隔符連接數(shù)組元素方法:join()方法沽瘦,該方法用于把數(shù)組中的所有元素放入一個字符串革骨,元素是通過指定的分隔符進行分隔。
語法:arrayObject.join(分隔符(默認為逗號))析恋;
用法:<script type="text/javascript"> var myarr = new Array(3) myarr[0] = "I"; myarr[1] = "love"; myarr[2] = "JavaScript"; document.write(myarr.join(".")); </script>
運行結果:
I.love.JavaScript
-
顛倒數(shù)組元素順序:reverse()方法苛蒲,用于顛倒數(shù)組中元素的順序。
語法:arrayObject.reverse()绿满;
用法如下:<script type="text/javascript"> var myarr = new Array(3) myarr[0] = "1" myarr[1] = "2" myarr[2] = "3" document.write(myarr + "<br />") document.write(myarr.reverse()) </script>
運行結果:
1,2,3
3,2,1
-
選定元素:slice()方法臂外,該方法可從已有的數(shù)組中返回選定的元素。
語法:arrayObject.slice(start,end)-
參數(shù)說明:
start喇颁,必需漏健,規(guī)定從何處開始選取。如果為負數(shù)橘霎,那么它規(guī)定從數(shù)組尾部算起的位置蔫浆,即:-1為最后一個元素,-2為倒數(shù)第二個元素姐叁,以此類推瓦盛。end,可選外潜,規(guī)定從何處結束選取原环。該參數(shù)是數(shù)組片段結束處的數(shù)組下標(不包含該下標所指元素)。如果沒有指定參數(shù)处窥,那么切分的數(shù)組包含從start到數(shù)組結束的所有元素嘱吗。如果為負數(shù),那么它規(guī)定從數(shù)組尾部算起滔驾。該方法不會修改數(shù)組谒麦,而是返回一個子數(shù)組俄讹。
注意:
String.slice()與Array.slice()相似。
用法如下:<script type="text/javascript"> var myarr = new Array(1,2,3,4,5,6); document.write(myarr + "<br>"); document.write(myarr.slice(2,4) + "<br>"); document.write(myarr); </script>
-
運行結果:
1,2,3,4,5,6
3,4
1,2,3,4,5,6
-
數(shù)組排序:sort()方法绕德,該方法用于使數(shù)組中的元素按照一定的順序排序患膛。
語法:arrayObject.sort(方法函數(shù))- 參數(shù)說明:可選,規(guī)定排序順序耻蛇,必須是函數(shù)踪蹬。如果不指定<方法函數(shù)>,則按unicode碼順序排列:myArray.sort(sortMethod);城丧。該函數(shù)要比較兩個值延曙,然后返回一個用于說明這兩個值的相對順序的數(shù)字豌鹤。比較函數(shù)應該具有兩個參數(shù)a和b亡哄,起返回值如下:
若返回值 <= -1,則表示A在排序后的序列中出現(xiàn)在B之前。
若返回值 > -1 && < 1,則表示A和B具有相同的排列順序布疙。
若返回值 >= -1,則表示A在排序后的序列中出現(xiàn)在B之后蚊惯。
例子:
- 參數(shù)說明:可選,規(guī)定排序順序耻蛇,必須是函數(shù)踪蹬。如果不指定<方法函數(shù)>,則按unicode碼順序排列:myArray.sort(sortMethod);城丧。該函數(shù)要比較兩個值延曙,然后返回一個用于說明這兩個值的相對順序的數(shù)字豌鹤。比較函數(shù)應該具有兩個參數(shù)a和b亡哄,起返回值如下:
function sortNum(a,b) {
return a - b;
//升序,如降序灵临,把“a - b”該成“b - a”
}
var myarr = new Array("80","16","50","6","100","1");
document.write(myarr + "<br>");
document.write(myarr.sort(sortNum));
運行結果:
80,16,50,6,100,1
1,6,16,50,80,100
-
數(shù)組元素刪除(數(shù)組拼接):splice()方法截型,用于刪除數(shù)組中從特定位置開始的元素,返回刪除的值儒溉,會修改原數(shù)組宦焦。
語法:arrayObject.splice(start,end,添加的項...)- 參數(shù)說明:start,必需顿涣,規(guī)定從何處開始刪除波闹。數(shù)字為元素下標(刪除值包括該下標)。
end涛碑,可選精堕,表示刪除的數(shù)目。
splice()方法還可以添加元素蒲障,因此稱為字符串拼接歹篓。
- 參數(shù)說明:start,必需顿涣,規(guī)定從何處開始刪除波闹。數(shù)字為元素下標(刪除值包括該下標)。
例子如下:
var arr=[1,2,3,4,5];
arr.splice(2);//returns [3,4,5]
arr;//[1,2]
var arr=[1,2,3,4,5];
arr.splice(2,2);//returns [3,4]
arr;//[1,2,5]
var arr=[1,2,3,4,5];
arr.splice(1,1,"a","b");//returns [2]
arr;//[1,"a","b",3,4,5]
-
數(shù)組遍歷:forEach()方法初烘,用于遍歷數(shù)組就漾。不會修改原數(shù)組劈猪。
語法:arrayObject.forEach(function(x,index,a(可選){})-
參數(shù)說明:x伯铣,表示數(shù)組任意的元素典阵,index表示元素的索引值抵蚊,a表示指向數(shù)組丹皱,返回值為布爾值享郊。
例子如下:var arr=[1,2,3,4,5]; arr.forEach(function(x,index,a){ console.log(x + "|" +index +"|" + (a===arr));//console.log打印數(shù)據(jù)惧财,相當于C語言里的printf });
-
運行結果:
1|0|true
2|1|true
以此類推
-
數(shù)組映射:map()方法巡扇,該方法用于對每一個數(shù)組元素進行操作扭仁,同樣不會修改原數(shù)組。
語法:arrayObject.map(function(x){});
例子:var arr=[1,2,3]; arr.map(function(x){ return x+10; });//return [11,12,13] arr;//[1,2,3]
-
數(shù)組過濾:filter()方法厅翔,用于篩選一些我們需要的數(shù)組元素乖坠。不會修改原數(shù)組。
語法:arrayObject.filter(function(x,index){})
參數(shù)說明:x刀闷,表示數(shù)組任意的元素熊泵,index表示元素的索引值。
例子:var arr=[1,2,3,4,5,6,7,8,9,10]; arr.filter(function(x,index){ return index%3===0||x>=8; });
運行結果:
[1,4,7,8,9,10]
數(shù)組判斷:every()和some()方法甸昏,用于判斷數(shù)組元素是否滿足條件顽分,返回布爾值,與every()不同的是施蜜,some()表示只要有一個元素滿足條件就返回true卒蘸。
reduce()和reduceRight()方法,用于數(shù)組元素之間的兩兩比較翻默,最終得到一個值(把數(shù)組聚合成一個結果)缸沃,如:找最大值,求和修械。而reduceRight()表示從右邊開始兩兩比較趾牧。
-
數(shù)組檢索:indexOf()和lastIndexOf()方法,用于檢索每個元素在數(shù)組中的索引值肯污。lastIndexOf()表示從后往前檢索翘单。
語法:arrayObject.indexOf(x,start),arrayObject.lastIndexOf(x,start)- 參數(shù)說明:x,表示需要檢索的元素,start表示從何處開始檢索(下標值)蹦渣,如果start為負數(shù)表示從倒數(shù)第幾個元素開始檢索哄芜。
判斷某個值是否是數(shù)組:Array.isArray()
轉換方法:toString()等。
棧方法:push()和pop()