一些超實(shí)用的JS常用算法詳解(推薦!)
介紹
本文主要介紹,常用的數(shù)組方法和字符串方法。
一、數(shù)組常用方法
1.push()
在尾部追加,類(lèi)似于壓棧,原數(shù)組會(huì)變。
2.pop()
在尾部彈出,類(lèi)似于出棧,原數(shù)組會(huì)變,數(shù)組的push & pop可以模擬常見(jiàn)數(shù)組結(jié)構(gòu)之一:棧
3.unshift()
在頭部壓入數(shù)據(jù),類(lèi)似于入隊(duì),原數(shù)組會(huì)變
4.shift()
在頭部彈出數(shù)據(jù),原數(shù)組會(huì)變,數(shù)組的 push (入隊(duì)) & shifit (出隊(duì)) 可以模擬常見(jiàn)數(shù)據(jù)結(jié)構(gòu)之一:隊(duì)列
5.concat()
concat會(huì)在當(dāng)前數(shù)組尾部拼接傳入的數(shù)組,然后返回一個(gè)新數(shù)組,原數(shù)組不變。
6.indexOf()
在數(shù)組中尋找該值,找到則返回其下標(biāo),找不到則返回 -1
7.includes()
在數(shù)組中尋找該值,找到則返回 true ,找不到則返回 false
8.join()
將數(shù)組轉(zhuǎn)化成字符串,并返回該字符串,不傳值則默認(rèn)逗號(hào)隔開(kāi),原數(shù)組不變。
9.reverse()
翻轉(zhuǎn)原數(shù)組,并返回已完成翻轉(zhuǎn)的數(shù)組,原數(shù)組改變。
10.slice(start, end)
從 start 開(kāi)始截取到 end , 但是不包括end
11.splice(start, deleteCount, item1,item2……)
start參數(shù) 開(kāi)始的位置
deleteCount 要截取的個(gè)數(shù)
后面的 items 為要添加的元素
如果 deleteCount 為 0,則表示不刪除元素, 從 start 位置開(kāi)始添加后面的幾個(gè)元素到原始的數(shù)組里面
返回值為由被刪除的元素組成的一個(gè)數(shù)組,如果只刪除了一個(gè)元素,則返回只包含一個(gè)元素的數(shù)組,如果沒(méi)有刪除元素,則返回空數(shù)組。
這個(gè)方法會(huì)改變?cè)紨?shù)組,數(shù)組的長(zhǎng)度會(huì)發(fā)生改變
12.sort()
對(duì)數(shù)組的元素進(jìn)行排序,并返回?cái)?shù)組。
默認(rèn)排序順序是將元素轉(zhuǎn)化為字符串,然后比較它們的 UTF-16 代碼單元值序列時(shí)構(gòu)建的。
由于它取決于具體實(shí)現(xiàn),因此無(wú)法保證排序時(shí)間和空間的復(fù)雜性。
13.toString()
將數(shù)組轉(zhuǎn)化成字符串,并返回該字符串,逗號(hào)隔開(kāi),原數(shù)組不變。
二、字符串常用方法
1.charAt()
返回指定索引位置處的字符,類(lèi)似于數(shù)組用中括號(hào)獲取相應(yīng)下標(biāo)位置的數(shù)據(jù)。
2.conCat()
類(lèi)似數(shù)組的concat(), 用來(lái)返回一個(gè)合并拼接兩個(gè)或兩個(gè)以上的字符串,原字符串不變。
3.indexOf()、lastIndexOf()
indexOf 返回一個(gè)字符在字符串中首次出現(xiàn)的位置,lastIndexOf 返回一個(gè)字符在字符串中最后一次出現(xiàn)的位置。
4.slice()
提取字符串的片段,并把提取的字符串作為新的字符串返回出來(lái),原字符串不變。
5.split()
使用指定的分隔符將一個(gè)字符串拆分為多個(gè)子字符串?dāng)?shù)組并返回,原字符串不變。
6.substr(), substring()
這兩個(gè)方法的功能都是截取一個(gè)字符串的片段,并返回截取的字符串。
substr 和 substring 這兩個(gè)方法不同的地方就在于參數(shù)二,substr的參數(shù)二是截取返回出來(lái)的這個(gè)字符串指定的長(zhǎng)度, substring 的參數(shù)二是截取返回這個(gè)字符串的結(jié)束點(diǎn),并且不包含這個(gè)結(jié)束點(diǎn)。而它們的參數(shù)一,都是一樣的功能,截取的起始位置。
注意事項(xiàng):substr 的參數(shù)二如果為 0 或者負(fù)數(shù),則返回一個(gè)空字符串,如果未填入,則會(huì)截取到字符串的結(jié)尾區(qū), substring 的參數(shù)一和參數(shù)二為 NAN 或者負(fù)數(shù),那么它將被替換為 0
7.match()
match() 方法可在字符串內(nèi)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配,并返回一個(gè)包含該搜索結(jié)果的數(shù)組。
注意事項(xiàng):如果 match 方法沒(méi)有找到匹配,將返回 null ,如果找到匹配,則match 方法會(huì)把匹配到的以數(shù)組形式返回,如果正則規(guī)則未設(shè)置全局修飾符 g ,則 match 方法返回的數(shù)組有兩個(gè)特性: input 和 index , input 屬性包含整個(gè)被搜索的字符串, index 屬性包含了在整個(gè)被搜索字符串中匹配的字符串的位置。
8.replace()
replace接收兩個(gè)參數(shù),參數(shù)一是需要替換掉的字符或者一個(gè)正則的匹配規(guī)則,參數(shù)二,需要替換進(jìn)去的字符,在實(shí)際的原理當(dāng)中,參數(shù)二也可以換成一個(gè)回調(diào)函數(shù)。
9.search ()
在目標(biāo)字符串中搜索與正則規(guī)則相匹配的字符,搜索到,則返回第一個(gè)匹配項(xiàng)在目標(biāo)字符串當(dāng)中的位置,沒(méi)有搜索到則返回一個(gè) -1
10.toLowerCase(), toUpperCase()
toLowerCase() 把字母轉(zhuǎn)換成小寫(xiě), toUpperCase() 則是把字母轉(zhuǎn)換成大寫(xiě)。
11.includes(), startsWith(), endsWith()
Includes 、startsWith 、endsWith ,es6的新增語(yǔ)法,includes 用來(lái)檢測(cè)目標(biāo)字符串對(duì)象是否包含某個(gè)字符,返回一個(gè)布爾值,startsWith 用來(lái)檢測(cè)當(dāng)前字符是否是目標(biāo)字符串的起始部分,相對(duì)的 endWith 是用來(lái)檢測(cè)是否是目標(biāo)字符串的結(jié)尾部分。
12.repeat ()
返回一個(gè)新的字符串對(duì)象,新字符換等于重復(fù)了指定次數(shù)的原始字符串,接收一個(gè)參數(shù),就是指定重復(fù)的次數(shù),原字符串不變。
總結(jié)
到此這篇關(guān)于超實(shí)用JS常用算法詳解的文章就介紹到這了,更多相關(guān)JS常用算法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序中時(shí)間戳和日期的相互轉(zhuǎn)換問(wèn)題
這篇文章主要介紹了微信小程序中時(shí)間戳和日期的相互轉(zhuǎn)換問(wèn)題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07javascript實(shí)現(xiàn)的文字加密解密
javascript實(shí)現(xiàn)的文字加密解密...2007-06-06被jQuery折騰得半死,揭秘為何jQuery為何在IE/Firefox下均無(wú)法使用
某學(xué)員前日實(shí)施一個(gè)Web項(xiàng)目實(shí)施發(fā)生了悲劇,找到我求解決,把我也折騰個(gè)半死。2010-01-01javascript簡(jiǎn)單實(shí)現(xiàn)類(lèi)似QQ頭像彈出效果的方法
這篇文章主要介紹了javascript簡(jiǎn)單實(shí)現(xiàn)類(lèi)似QQ頭像彈出效果的方法,可實(shí)現(xiàn)簡(jiǎn)單的頁(yè)面元素彈出效果,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08Bootstrap模態(tài)框禁用空白處點(diǎn)擊關(guān)閉
這篇文章主要為大家詳細(xì)介紹了Bootstrap模態(tài)框禁用空白處點(diǎn)擊關(guān)閉的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10JS實(shí)現(xiàn)面向?qū)ο罄^承的5種方式分析
這篇文章主要介紹了JS實(shí)現(xiàn)面向?qū)ο罄^承的5種方式,結(jié)合實(shí)例形式分析了JavaScript面向?qū)ο罄^承功能的5種常見(jiàn)實(shí)現(xiàn)方法原理與操作技巧,需要的朋友可以參考下2018-07-07