大致分為四類
增刪改查
增:push 蝌诡,unshift 矗晃,splice
刪:pop 旗唁, shift 畦浓,reduce , reduceRight?
改:map 检疫, fill
查:every 讶请, filter ,find ,findIndex 夺溢,includes 论巍,indexOf ,lastIndexof ,some
2.排序
reverse 风响,sort
3.類型
判斷:isArray
修改:join 嘉汰, toString
4.功能性
forEach, keys 状勤, valueOf 鞋怀,entries ,from
以下為詳細介紹
1.增加
push()向數(shù)組的末尾添加一個或更多元素,并返回新的長度持搜。
//數(shù)組中添加新元素:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi")//fruits 結(jié)果輸出:Banana,Orange,Apple,Mango,Kiwi
unshift()向數(shù)組的開頭添加一個或更多元素密似,并返回新的長度。
//將新項添加到數(shù)組起始位置:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon","Pineapple");//fruits 將輸出:Lemon,Pineapple,Banana,Orange,Apple,Mango
splice()從數(shù)組中添加或刪除元素葫盼。
//數(shù)組中添加新元素:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");
//fruits 輸出結(jié)果:
Banana,Orange,Lemon,Kiwi,Apple,Mango
2.刪除
pop()刪除數(shù)組的最后一個元素并返回刪除的元素残腌。
//移除最后一個數(shù)組元素varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();//fruits 結(jié)果輸出:Banana,Orange,Apple
shift()刪除并返回數(shù)組的第一個元素。
//從數(shù)組中移除元素:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift()//fruits結(jié)果輸出:Orange,Apple,Mango
reduce()將數(shù)組元素計算為一個值(從左到右)
//計算數(shù)組元素相加后的總和:var numbers = [65, 44, 12, 4]; functiongetSum(total, num) {? ? return total +num;}functionmyFunction(item) {? ? document.getElementById("demo").innerHTML = numbers.reduce(getSum);
}
//輸出結(jié)果:
125
reduceRight()將數(shù)組元素計算為一個值(從右到左)贫导。
//計算數(shù)組元素相加后的總和:varnumbers = [65, 44, 12, 4];
function getSum(total, num) {
? ? returntotal + num;
}function myFunction(item) {
? ? document.getElementById("demo").innerHTML = numbers.reduceRight(getSum);
}//輸出結(jié)果:125
3.改
map()通過指定函數(shù)處理數(shù)組的每個元素抛猫,并返回處理后的數(shù)組。
//返回一個數(shù)組孩灯,數(shù)組中元素為原始數(shù)組的平方根:varnumbers = [4, 9, 16, 25];function myFunction() {
? ? x = document.getElementById("demo")
? ? x.innerHTML = numbers.map(Math.sqrt);
}//輸出結(jié)果為:2,3,4,5
fill()使用一個固定值來填充數(shù)組
//使用固定值填充數(shù)組:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.fill("Runoob");//fruits 輸出結(jié)果:Runoob,Runoob,Runoob,Runoob
4.查
every()檢測數(shù)值元素的每個元素是否都符合條件闺金。
//檢測數(shù)組 ages 的所有元素是否都大于等于 18 :varages = [32, 33, 16, 40];function checkAdult(age) {
? ? returnage >= 18;
}function myFunction() {
? ? document.getElementById("demo").innerHTML = ages.every(checkAdult);
}//輸出結(jié)果為:false
filter()檢測數(shù)值元素,并返回符合條件所有元素的數(shù)組钱反。
//返回數(shù)組 ages 中所有元素都大于 18 的元素:varages = [32, 33, 16, 40];function checkAdult(age) {
? ? returnage >= 18;
}function myFunction() {
? ? document.getElementById("demo").innerHTML = ages.filter(checkAdult);
}//輸出結(jié)果為:32,33,40
find()返回符合傳入測試(函數(shù))條件的數(shù)組元素掖看。
//獲取數(shù)組中年齡大于 18 的第一個元素varages = [3, 10, 18, 20];
function checkAdult(age) {
? ? returnage >= 18;
}
function myFunction() {
? ? document.getElementById("demo").innerHTML = ages.find(checkAdult);
}//fruits 輸出結(jié)果:18
findIndex()返回符合傳入測試(函數(shù))條件的數(shù)組元素索引。
//獲取數(shù)組中年齡大于等于 18 的第一個元素索引位置varages = [3, 10, 18, 20];
function checkAdult(age) {
? ? returnage >= 18;
}
function myFunction() {
? ? document.getElementById("demo").innerHTML = ages.findIndex(checkAdult);
}//fruits 輸出結(jié)果:2
includes()判斷一個數(shù)組是否包含一個指定的值面哥。
//檢測數(shù)組 site 是否包含 runoob :let site = ['runoob', 'google', 'taobao'];
site.includes('runoob'); // true?
site.includes('baidu'); // false
indexOf()搜索數(shù)組中的元素哎壳,并返回它所在的位置。
//查找數(shù)組中的 "Apple" 元素:varfruits = ["Banana", "Orange", "Apple", "Mango"];vara = fruits.indexOf("Apple");//a 結(jié)果輸出:2
lastIndexOf()搜索數(shù)組中的元素尚卫,并返回它最后出現(xiàn)的位置归榕。
//查找數(shù)組元素 "Apple"出現(xiàn)的位置:varfruits = ["Banana", "Orange", "Apple", "Mango"];vara = fruits.lastIndexOf("Apple");//a 輸出結(jié)果:2//以上實例輸出結(jié)果意味著 "Apple" 位于數(shù)組中的第 2 個位置.
some()檢測數(shù)組元素中是否有元素符合指定條件。
//檢測數(shù)組中是否有元素大于 18:varages = [3, 10, 18, 20];function checkAdult(age) {
? ? returnage >= 18;
}function myFunction() {
? ? document.getElementById("demo").innerHTML = ages.some(checkAdult);
}//輸出結(jié)果為:true
5.排序
reverse()反轉(zhuǎn)數(shù)組的元素順序吱涉。
//顛倒數(shù)組中元素的順序:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse();//fruits 結(jié)果輸出:Mango,Apple,Orange,Banana
sort()對數(shù)組的元素進行排序刹泄。
//數(shù)組排序:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();//fruits 輸出結(jié)果:Apple,Banana,Mango,Orange
6.類型判斷
isArray()判斷對象是否為數(shù)組。
//判斷對象是否為數(shù)組:function myFunction() {
? ? varfruits = ["Banana", "Orange", "Apple", "Mango"];
? ? varx = document.getElementById("demo");
? ? x.innerHTML = Array.isArray(fruits);
}//如果對象是數(shù)組返回 true怎爵,否則返回 false特石。
7.類型修改
join()把數(shù)組的所有元素放入一個字符串。
//把數(shù)組中的所有元素轉(zhuǎn)換為一個字符串:varfruits = ["Banana", "Orange", "Apple", "Mango"];varenergy = fruits.join();//energy輸出結(jié)果:Banana,Orange,Apple,Mango
toString()把數(shù)組轉(zhuǎn)換為字符串鳖链,并返回結(jié)果姆蘸。
//將數(shù)組轉(zhuǎn)換為字符串:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.toString();//fruits將輸出:Banana,Orange,Apple,Mango
8.功能性
forEach()數(shù)組每個元素都執(zhí)行一次回調(diào)函數(shù)。
//列出數(shù)組的每個元素:點我 demoP = document.getElementById("demo");varnumbers = [4, 9, 16, 25];
function myFunction(item, index) {
? ? demoP.innerHTML = demoP.innerHTML + "index[" + index + "]: " + item + "
";
}//輸出結(jié)果:index[0]: 4index[1]: 9index[2]: 16index[3]: 25
keys()返回數(shù)組的可迭代對象,包含原始數(shù)組的鍵(key)逞敷。
//從數(shù)組 fruit 創(chuàng)建一個數(shù)組迭代對象狂秦, 該對象包含了數(shù)組的鍵:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.keys();//如果對象是數(shù)組返回 true,否則返回 false推捐。
valueOf()返回數(shù)組對象的原始值裂问。
//valueOf() 是數(shù)組對象的默認方法。varfruits = ["Banana", "Orange", "Apple", "Mango"];varv=fruits.valueOf();
fruits.valueOf()與 fruits返回值一樣牛柒。//v輸出結(jié)果為:Banana,Orange,Apple,Mango
entries()返回數(shù)組的可迭代對象堪簿。
從數(shù)組 fruit 創(chuàng)建一個可迭代對象, 該對象包含了數(shù)組的鍵值對:varfruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.entries();//結(jié)果[0, "Banana"]
[1, "Orange"]
[2, "Apple"]
[3, "Mango"]
from()通過給定的對象中創(chuàng)建一個數(shù)組焰络。
//通過字符串創(chuàng)建一個數(shù)組:varmyArr = Array.from("RUNOOB");//結(jié)果R