Array對象方法分類

大致分為四類

增刪改查

增: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

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末戴甩,一起剝皮案震驚了整個濱河市符喝,隨后出現(xiàn)的幾起案子闪彼,更是在濱河造成了極大的恐慌,老刑警劉巖协饲,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件畏腕,死亡現(xiàn)場離奇詭異,居然都是意外死亡茉稠,警方通過查閱死者的電腦和手機描馅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來而线,“玉大人铭污,你說我怎么就攤上這事“蚶海” “怎么了嘹狞?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長誓竿。 經(jīng)常有香客問我磅网,道長,這世上最難降的妖魔是什么筷屡? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任涧偷,我火速辦了婚禮,結(jié)果婚禮上毙死,老公的妹妹穿的比我還像新娘燎潮。我一直安慰自己,他們只是感情好扼倘,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布确封。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪隅肥。 梳的紋絲不亂的頭發(fā)上竿奏,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機與錄音腥放,去河邊找鬼泛啸。 笑死,一個胖子當著我的面吹牛秃症,可吹牛的內(nèi)容都是我干的候址。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼种柑,長吁一口氣:“原來是場噩夢啊……” “哼岗仑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起聚请,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤荠雕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后驶赏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炸卑,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年煤傍,在試婚紗的時候發(fā)現(xiàn)自己被綠了盖文。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚯姆,死狀恐怖五续,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情龄恋,我是刑警寧澤疙驾,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站篙挽,受9級特大地震影響荆萤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铣卡,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一链韭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧煮落,春花似錦敞峭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殖蚕。三九已至,卻和暖如春沉迹,著一層夾襖步出監(jiān)牢的瞬間睦疫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工鞭呕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蛤育,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓葫松,卻偏偏與公主長得像瓦糕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子腋么,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355