Array對象:用於在變量中存儲多個值。
concat()
連接兩個或更多的數組,並返回新的數組作爲結果。【不會改變現有的數組,而僅僅會返回被連接數組的一個副本。】
語法:array1.concat(array2,array3,...,arrayX)
參數 | 描述 |
---|---|
array2, array3, ..., arrayX | 必需。該參數可以是具體的值,也可以是數組對象。可以是任意多個。 |
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var children = hege.concat(stale, ["Robin","Mona"]); //參數可以是具體值也可以是數組對象
children 輸出結果:
Cecilie,Lone,Emil,Tobias,Linus,Robin,Mona
every()
用於檢測數組所有元素是否都符合指定條件(通過函數提供)。【不會對空數組進行檢測,不會改變原始數組。】
- 如果數組中檢測到有一個元素不滿足,則整個表達式返回 false ,且剩餘的元素不會再進行檢測。
- 如果所有元素都滿足條件,則返回 true。
語法:array.every(function(currentValue,index,arr), thisValue)
參數 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
function(currentValue, index,arr) | 必須。函數,數組中的每個元素都會執行這個函數 函數參數:
|
||||||||
thisValue | 可選。對象作爲該執行回調時使用,傳遞給函數,用作 "this" 的值。 如果省略了 thisValue ,"this" 的值爲 "undefined" |
var ages = [32, 33, 12, 40];
function checkAdult(age) {
return age >= document.getElementById("ageToCheck").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.every(checkAdult);
}
輸出結果:
false
filter()
創建一個新的數組,新數組中的元素是檢查指定數組中符合條件的所有元素。【不會對空數組進行檢測,不會改變原始數組。】
語法:array.filter(function(currentValue,index,arr), thisValue)
參數 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
function(currentValue, index,arr) | 必須。函數,數組中的每個元素都會執行這個函數 函數參數:
|
||||||||
thisValue | 可選。對象作爲該執行回調時使用,傳遞給函數,用作 "this" 的值。 如果省略了 thisValue ,"this" 的值爲 "undefined" |
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}
輸出結果爲:
32,33,40
indexOf()
可返回某個指定的字符串值在字符串中首次出現的位置。
- 若找到該字符串,則返回其首次出現的位置
- 若沒找到該字符串則返回 -1。
語法:array.indexOf(item,start)
參數 | 描述 |
---|---|
item | 必須。查找的元素。 |
start | 可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字符串的首字符開始檢索。 |
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.indexOf("Apple",4);
a 結果輸出:
6
lastIndexOf()
返回一個指定的字符串值最後出現的位置,在一個字符串中的指定位置從後向前搜索。
- 若找到該字符串,則返回該字符串第一個字符所在的位置
- 若沒找到該字符串則返回 -1。
語法:array.lastIndexOf(item,start)
參數 | 描述 |
---|---|
item | 必需。規定需檢索的字符串值。 |
start | 可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略該參數,則將從字符串的最後一個字符處開始檢索。 |
var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
var a = fruits.lastIndexOf("Apple",4);
a 結果輸出:
2
join()
把數組中的所有元素轉換爲一個字符串,並返回該字符串。
語法:array.join(separator)
參數 | 描述 |
---|---|
separator | 可選。指定要使用的分隔符。如果省略該參數,則使用逗號作爲分隔符。 |
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var energy = fruits.join(" and ");
energy 結果輸出:
Banana and Orange and Apple and Mango
map()
回一個新數組,數組中的元素爲原始數組元素調用函數處理後的值。
【按照原始數組元素順序依次處理元素。不會對空數組進行檢測,不會改變原始數組。】
語法:array.map(function(currentValue,index,arr), thisValue)
參數 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
function(currentValue, index,arr) | 必須。函數,數組中的每個元素都會執行這個函數 函數參數:
|
||||||||
thisValue | 可選。對象作爲該執行回調時使用,傳遞給函數,用作 "this" 的值。 如果省略了 thisValue ,"this" 的值爲 "undefined" |
var numbers = [4, 9, 16, 25];
function myFunction() {
x = document.getElementById("demo")
x.innerHTML = numbers.map(Math.sqrt);
}
輸出結果爲:
2,3,4,5
var numbers = [65, 44, 12, 4];
function multiplyArrayElement(num) {
return 10 * document.getElementById("multiplyWith").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = numbers.map(multiplyArrayElement);
}
輸出結果:
650,440,120,40
shift()
把數組的第一個元素從其中刪除,並返回第一個元素的值。【改變數組長度。】
語法:array.shift()
*數組元素可以是一個字符串,數字,數組,布爾,或者其他對象類型。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift()
fruits結果輸出:
Orange,Apple,Mango
unshift()
向數組的開頭添加一個或更多元素,並返回新的長度。
語法:array.unshift(item1, item2, ... , itemX)
參數 | 描述 |
---|---|
item1,item2, ..., itemX |
可選。向數組起始位置添加一個或者多個元素。 |
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");
輸出結果:
Lemon,Pineapple,Banana,Orange,Apple,Mango
pop()
刪除數組的最後一個元素並返回刪除的元素。【改變數組長度。】
語法:array.pop()
*數組元素可以是一個字符串,數字,數組,布爾,或者其他對象類型。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();
fruits 結果輸出:
Banana,Orange,Apple
push()
向數組的末尾添加一個或多個元素,並返回新的長度。
語法:array.push(item1, item2, ..., itemX)
參數 | 描述 |
---|---|
item1, item2, ..., itemX | 必需。要添加到數組的元素。 |
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")
fruits 結果輸出:
Banana,Orange,Apple,Mango,Kiwi
reverse()
顛倒數組中元素的順序。
語法:array.reverse()
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();
fruits 結果輸出:
Mango,Apple,Orange,Banana
slice()
可從已有的數組中返回選定的元素。可提取字符串的某個部分,並以新的字符串返回被提取的部分。【不會怪便原始數組】
語法:array.slica(tart, end)
參數 | 描述 |
---|---|
start | 必需。規定從何處開始選取。如果是負數,那麼它規定從數組尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。 |
end |
可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那麼切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那麼它規定的是從數組尾部開始算起的元素。 |
var str="www.w3cschool.cn!";
var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
//正數,, 左開右閉
document.write(str.slice(4)+"<br>"); // 從第 5 個字符開始截取到末尾
document.write(str.slice(4,10)+"<br>"); // 從第 5 個字符開始截取到第10個字符
document.write(fruits.slice(1,3)+"<br>");//從第 2 個數組元素開始截取到第3個數組元素
//負數,,左閉右開
document.write(str.slice(-5,-1)+"<br>");
document.write(fruits.slice(0,-1); //從第 1 個開始截取到倒數第 2 個數組元素
document.write(fruits.slice(-3,-1)); //從倒數第3個開始截取到倒數第 2 個數組元素
輸出結果:
w3cschool.cn!
w3csch
Orange,Lemon
l.cn
Banana,Orange,Lemon,Apple
Lemon,Apple
some()
檢測數組中的元素是否滿足指定條件(函數提供)。【不會對空數組進行檢測,不會改變原始數組。】
- 如果有一個元素滿足條件,則表達式返回true , 剩餘的元素不會再執行檢測。
- 如果沒有滿足條件的元素,則返回false。
語法:array.some(function(currentValue,index,arr),thisValue)
參數 | 描述 | ||||||||
---|---|---|---|---|---|---|---|---|---|
function(currentValue, index,arr) | 必須。函數,數組中的每個元素都會執行這個函數 函數參數:
|
||||||||
thisValue | 可選。對象作爲該執行回調時使用,傳遞給函數,用作 "this" 的值。 如果省略了 thisValue ,"this" 的值爲 "undefined" |
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.some(checkAdult);
}
輸出結果爲:
true
sort()
對數組的元素進行排序。【會改變原始數組。】
排序順序可以是字母或數字,並按升序或降序。默認排序順序爲按字母升序。
注意:
- 當數字是按字母順序排列時"40"將排在"5"前面。
- 使用數字排序,你必須通過一個函數作爲參數來調用。
- 函數指定數字是按照升序還是降序排列。
語法:array.sort(sortfunction)
參數 | 描述 |
---|---|
sortfunction | 可選。規定排序順序。必須是函數。 |
數字排序(數字和降序):
var points = [40,100,1,5,25,10];
points.sort(function(a,b){return b-a});
fruits輸出結果:
100,40,25,10,5,1
數字排序 (字母和降序):
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();
fruits輸出結果:
Orange,Mango,Banana,Apple
splice()
用於插入、刪除或替換數組的元素。【會改變原始數組。】
語法:array.splice(index,howmany,item1,.....,itemX)
參數 | 描述 |
---|---|
index | 必需。規定從何處添加/刪除元素。 該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。 |
howmany | 必需。規定應該刪除多少元素。必須是數字,但可以是 "0"。 如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。 |
item1, ..., itemX | 可選。要添加到數組的新元素 |
移除數組的第三個元素,並在數組第三個位置添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");
fruits 輸出結果:
Banana,Orange,Lemon,Kiwi,Mango
toString()
把數組轉換爲字符串,並返回結果。【數組中的元素之間用逗號分隔。】
語法:array.toString()
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();
fruits將輸出:
Banana,Orange,Apple,Mango
valueOf()
返回 Array 對象的原始值。type:Array【不會改變原數組。】
該原始值由 Array 對象派生的所有對象繼承。valueOf() 方法通常由 JavaScript 在後臺自動調用,並不顯式地出現在代碼中。
語法:array.valueOf()
valueOf() 是數組對象的默認方法。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var v=fruits.valueOf();
fruits.valueOf()與 fruits返回值一樣。
v輸出結果爲:
Banana,Orange,Apple,Mango