javascript中一些數(shù)組常用的API總結(jié)
前言
Js中數(shù)組是一個(gè)重要的數(shù)據(jù)結(jié)構(gòu),它相比于字符串有更多的方法,在一些算法題中我們經(jīng)常需要將字符串轉(zhuǎn)化為數(shù)組,使用數(shù)組里面的API進(jìn)行操作。本篇文章總結(jié)了一些數(shù)組中常用的API,我們把它們分成兩類(lèi),一類(lèi)是會(huì)改變?cè)紨?shù)組,一類(lèi)是不會(huì)改變?cè)紨?shù)組;一起來(lái)看一下吧。
會(huì)改變?cè)瓟?shù)組
Js中數(shù)組有一些方法可以直接改變?cè)紨?shù)組。
push()
push()方法是在數(shù)組的末尾添加一個(gè)或多個(gè)元素,并且返回改變后數(shù)組的長(zhǎng)度。
用法:
let arr = [1, 2, 3, 4, 5] let res = arr.push(6, 7) console.log(res);//7 console.log(arr);//[1, 2, 3, 4, 5, 6, 7]
pop()和shift()
這兩個(gè)方法都是刪除數(shù)組中的元素,pop()方法是將數(shù)組中最后一個(gè)元素刪除,shift()方法是將數(shù)組中第一個(gè)元素從數(shù)組中刪除,都返回刪除的那一項(xiàng)。
用法:
let arr = [1, 2, 3, 4, 5] let res = arr.pop() console.log(res);//5 console.log(arr);//[ 1, 2, 3, 4 ] let res2 = arr.shift() console.log(res2);//1 console.log(arr);//[ 2, 3, 4 ]
unshift()
unshift()方法向數(shù)組的開(kāi)頭添加一個(gè)或多個(gè)元素,并且返回改變后數(shù)組的長(zhǎng)度。
用法:
let arr = [1, 2, 3, 4, 5] let res = arr.unshift(0, 11) console.log(res);//7 console.log(arr);//[ 0, 11, 1, 2, 3, 4, 5]
splice()
splice()方法添加或刪除數(shù)組中的元素,有返回值,以數(shù)組形式返回刪除的元素,沒(méi)有刪除則返回空數(shù)組。
用法:splice可以接收三個(gè)參數(shù), splice(index, n, x)
index: 要?jiǎng)h除或插入元素的位置, 該參數(shù)是必需的。
n: 要?jiǎng)h除的元素個(gè)數(shù), 如果不想刪除任何元素, 可以將該參數(shù)設(shè)置為0。
x:要插入到數(shù)組中的新元素,可以是多個(gè)x1,x2,x3...如果不想插入任何元素,則可以省略這些參數(shù)。
let arr = [1, 2, 3, 4, 5] let res = arr.splice(1, 2, 6, 7, 8) console.log(res);//[ 2, 3 ] console.log(arr);//[ 1, 6, 7, 8, 4, 5 ] let res2 = arr.splice(1, 0, 8) console.log(res2);//[] console.log(arr);//[1, 8, 6, 7, 8, 4, 5]
sort()
sort()方法可以對(duì)數(shù)組的元素進(jìn)行排序,并且返回出排序后的數(shù)組。
用法:sort()默認(rèn)為升序排列。 直接寫(xiě)sort()只能處理10以?xún)?nèi)的數(shù)字排序,處理10以上的我們需要傳遞一個(gè)參數(shù),這個(gè)參數(shù)必須是函數(shù),函數(shù)通過(guò)返回一個(gè)值來(lái)決定這兩個(gè)值需不需要交換位置。 如果a-b > 0,則a和b交換位置。
let arr = [10, 12, 11, 19, 13, 15, 6]; let res1 = arr.sort(function (a, b) { return a - b; }); //實(shí)現(xiàn)由小到大 console.log(res1);//[6, 10, 11, 12,13, 15, 19] let res2 = arr.sort(function (a, b) { return b - a; }) //實(shí)現(xiàn)由大到小 console.log(res2);//[19, 15, 13, 12,11, 10, 6]
reverse()
reverse()方法可以顛倒數(shù)組中元素的順序,并且返回顛倒后的數(shù)組。
用法:
let arr = [1, 2, 3, 4, 5] let res = arr.reverse() console.log(res);//[ 5, 4, 3, 2, 1 ] console.log(arr);//[ 5, 4, 3, 2, 1 ]
不會(huì)改變?cè)瓟?shù)組
Js中數(shù)組有一些方法不會(huì)直接改變?cè)紨?shù)組,會(huì)返回出一個(gè)新的數(shù)組。
slice()
slice() 方法可提取數(shù)組的某些元素,并以新的數(shù)組返回被提取的元素。
用法:slice(n,m) 從索引n(包含n)開(kāi)始找到索引m(不包含m)處。把找到的內(nèi)容作為一個(gè)新的數(shù)組返回,原有數(shù)組是不改變的。
let arr = [1, 2, 3, 4, 5] let res = arr.slice(2, 4) console.log(res);//[ 3, 4 ] console.log(arr);//[ 1, 2, 3, 4, 5 ] slice(n)// 從索引n(包含n)開(kāi)始找到末尾 slice(0) // slice() 將原來(lái)數(shù)組原封不動(dòng)的復(fù)制一份
concat()
concat ()方法用于連接兩個(gè)或多個(gè)數(shù)組,該方法不會(huì)改變現(xiàn)有的數(shù)組,而僅僅會(huì)返回被連接數(shù)組的一個(gè)副本。
用法:
let arr1 = [1, 2, 3, 4, 5] let arr2 = [7, 8] let res = arr1.concat(arr2) console.log(res);//[ 1, 2, 3, 4, 5, 7, 8] console.log(arr1);//[ 1, 2, 3, 4, 5 ] console.log(arr2);//[ 7, 8 ]
filter()
filter()用于對(duì)數(shù)組進(jìn)行過(guò)濾。
用法:它創(chuàng)建一個(gè)新數(shù)組,新數(shù)組中的元素是通過(guò)檢查指定數(shù)組中符合條件的所有元素。其中函數(shù)function 為必須,數(shù)組中的每個(gè)元素都會(huì)執(zhí)行這個(gè)函數(shù)。且如果返回值為true,則該元素被保留;函數(shù)可以接受三個(gè)參數(shù)(item, index, arr),第一個(gè)參數(shù)item也為必須,代表當(dāng)前元素的值,第二個(gè)參數(shù)為當(dāng)前元素的索引值,第三個(gè)參數(shù)為數(shù)組本身。
const arr = [ { name: 'song', age: 18 }, { name: 'Y', age: 19 }, { name: 'son', age: 20 }, { name: 'so', age: 21 } ] const newArr = arr.filter((item, index, arr) => { return item.age > 19 }) console.log(newArr);//[ { name: 'son', age: 20 }, { name: 'so', age: 21 } ] console.log(arr);//[ { name: 'song', age: 18 },{ name: 'Y', age: 19 }, //{ name: 'son', age: 20 }, { name: 'so', age: 21 }]
forEach()
forEach()方法用于調(diào)用數(shù)組的每個(gè)元素,并將元素傳遞給回調(diào)函數(shù)。
用法:回調(diào)函數(shù)中可以接受三個(gè)參數(shù)(item,index,arr),第一個(gè)參數(shù)item也為必須,代表當(dāng)前元素的值,第二個(gè)參數(shù)為當(dāng)前元素的索引值,第三個(gè)參數(shù)為數(shù)組本身。
const arr = [ { name: 'song', age: 18 }, { name: 'Y', age: 19 }, { name: 'son', age: 20 }, { name: 'so', age: 21 } ] arr.my_forEach((item, index, arr) => { console.log(item.age);//18 19 20 21 }) console.log(arr);//[ { name: 'song', age: 18 }, { name: 'Y', age: 19 }, //{ name: 'son', age: 20 },{ name: 'so', age: 21 } ]
toString
toString 把數(shù)組中的每一項(xiàng)拿出來(lái),用逗號(hào)隔開(kāi),組成字符串,原有數(shù)組不變。
用法:
let arr = ['song', 'Y', 'son', 'so'] let res = arr.toString() console.log(res);//'song,Y,son,so' console.log(arr);//[ 'song', 'Y', 'son', 'so' ]
join(分隔符)
join(分隔符) 把數(shù)組中的每一項(xiàng)拿出來(lái),用指定的分隔符隔開(kāi),原有數(shù)組不變。
用法:
let arr = ['song', 'Y', 'son', 'so'] let res = arr.join(',') console.log(res);//'song,Y,son,so' console.log(res.length);//13 console.log(arr);//[ 'song', 'Y', 'son', 'so' ] console.log(arr.length);//4
小結(jié)
Js中數(shù)組的方法不只這么一些,比如還有一些遍歷的方法:map,reduce,find,every等等,我們需要知道。
到此這篇關(guān)于javascript中一些數(shù)組常用的API總結(jié)的文章就介紹到這了,更多相關(guān)javascript數(shù)組API內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript實(shí)現(xiàn)簡(jiǎn)易聊天對(duì)話框(加滾動(dòng)條)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)易聊天對(duì)話框,附加滾動(dòng)條功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02js判斷數(shù)組中是否包含某個(gè)值的4種方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于js判斷數(shù)組中是否包含某個(gè)值的4種方法,數(shù)組是我們編程中經(jīng)常使用的的數(shù)據(jù)結(jié)構(gòu)之一,在處理數(shù)組時(shí)我們經(jīng)常需要在數(shù)組中查找特定的值,JavaScript 包含一些內(nèi)置方法來(lái)檢查數(shù)組是否有特定的值或?qū)ο?需要的朋友可以參考下2023-11-11我也種棵OO樹(shù)JXTree[js+css+xml]
我也種棵OO樹(shù)JXTree[js+css+xml]...2007-04-04JavaScript的各種常見(jiàn)函數(shù)定義方法
這篇文章主要介紹了JavaScript的各種常見(jiàn)函數(shù)定義方法,包含了一些技巧的測(cè)試與分析總結(jié),需要的朋友可以參考下2014-09-09JS實(shí)現(xiàn)不用中間變量temp 實(shí)現(xiàn)兩個(gè)變量值得交換方法
這篇文章主要介紹了在JS中 實(shí)現(xiàn)不用中間變量temp 實(shí)現(xiàn)兩個(gè)變量值得交換 ,需要的朋友可以參考下2018-02-02使用threejs實(shí)現(xiàn)滾動(dòng)效果的示例代碼
某一天我在刷抖音時(shí),看到一個(gè)UI設(shè)計(jì)師分享了一個(gè)好看的網(wǎng)頁(yè)滾動(dòng)動(dòng)效設(shè)計(jì),那種飄逸流暢的動(dòng)畫(huà)效果立刻抓住了我的眼球,我腦海里立刻開(kāi)始想象用代碼如何實(shí)現(xiàn)這個(gè)效果,所以本文給大家分享了如何使用threejs實(shí)現(xiàn)滾動(dòng)效果,感興趣的朋友可以參考下2024-01-01自己寫(xiě)了一個(gè)展開(kāi)和收起的多更能型的js效果
展開(kāi)和收起這樣的效果想必大家早就眼熟了吧,利用閑暇時(shí)間用js寫(xiě)了一個(gè)具體功能:當(dāng)自己處于全部顯示的時(shí)候,點(diǎn)擊自己的收起,自己收起等等感興趣的你可以參考下哈2013-03-03