JavaScript_Array對象方法

 

Array對象:用於在變量中存儲多個值。

concat()

連接兩個或更多的數組,並返回新的數組作爲結果。【不會改變現有的數組,而僅僅會返回被連接數組的一個副本。】

語法:array1.concat(array2,array3,...,arrayX)

參數 描述
array2array3, ..., 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) 必須。函數,數組中的每個元素都會執行這個函數
函數參數:
參數 描述
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) 必須。函數,數組中的每個元素都會執行這個函數
函數參數:
參數 描述
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) 必須。函數,數組中的每個元素都會執行這個函數
函數參數:
參數 描述
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)

參數 描述
item1item2, ..., 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) 必須。函數,數組中的每個元素都會執行這個函數
函數參數:
參數 描述
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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章