JS常用方法

數(shù)組檢測

//通常情況
let boo = nums instanceof Array
console.log(boo); //true

//最終方法 Array.isArray()方法
let boo = Array.isArray(nums)
console.log(boo);

數(shù)組轉(zhuǎn)換

toString()
toLocalString()
join() 參數(shù)可指定分隔符

var arr = ['ga', 'er', 'rt']

let a = arr.toLocaleString()

console.log(a); //ga,er,rt
console.log(arr); //[ 'ga', 'er', 'rt' ]
var arr = ['ga', 'er', 'rt']

let a = arr.join('|')

console.log(a); //ga|er|rt
console.log(arr); //[ 'ga', 'er', 'rt' ]

添加芝加,移除方法

push()方法可以接收任意數(shù)量的參數(shù)骡尽,并把他們逐個(gè)添加到數(shù)組末尾孽椰,并返回修改后數(shù)組的長度
pop()方法則從數(shù)組末尾移除最后一項(xiàng),減少數(shù)組的length值,然后返回移除的項(xiàng)
shift()移除數(shù)據(jù)組中的第一個(gè)項(xiàng)并返回該項(xiàng)框杜,同時(shí)將數(shù)組長度減一
unshift() 在數(shù)組前端添加任意個(gè)項(xiàng)并返回新數(shù)組的長度

重排序方法

  • reverse()方法可以反轉(zhuǎn)數(shù)組項(xiàng)的順序蝶押,注意該方法是直接在原始數(shù)組上進(jìn)行操作的踱蠢。
var nums = [1, 2, 3, 4]
nums.reverse()
console.log(nums); //[ 4, 3, 2, 1 ]
  • sort()方法,在默認(rèn)情況下會按升序序列排列數(shù)組項(xiàng)——即最小的值位于最前面棋电,最大的值排在最后面茎截。不過這個(gè)升序的比較,比較的不是數(shù)值的大小赶盔,為了實(shí)現(xiàn)排序企锌,sort()方法會調(diào)用每個(gè)數(shù)組項(xiàng)的toString()轉(zhuǎn)型方法,然后比較得到的字符串于未,以確定該如何排序撕攒。即使數(shù)組中的每一項(xiàng)都是數(shù)值陡鹃,sort()方法比較的也是字符串。
var nums = [0,1,5,10,15]
nums.sort()
console.log(nums); // [ 0, 1, 10, 15, 5 ]

//參數(shù)為比較函數(shù)
var nums = [0,1,5,10,15]
nums.sort(compare)
console.log(nums); // [ 0, 1, 5, 10, 15 ]
function compare(a, b) {
  return a -b
}

參考資料https://www.w3school.com.cn/jsref/jsref_sort.asp

操作方法

  • concat(...value) 方法用于連接兩個(gè)或多個(gè)數(shù)組抖坪。
    該方法不會改變現(xiàn)有的數(shù)組萍鲸,而僅僅會返回被連接數(shù)組的一個(gè)副本。
//參數(shù):可以是具體的值擦俐,也可以是數(shù)組對象脊阴。可以是任意多個(gè)
//返回值:返回一個(gè)新的數(shù)組蚯瞧。該數(shù)組是通過把所有 arrayX 參數(shù)添加到 arrayObject 中生成的嘿期。如果要進(jìn)行 concat() 操作的參數(shù)是數(shù)組,那么添加的是數(shù)組中的元素埋合,而不是數(shù)組

var nums = [0]
let a = nums.concat(1, 2)
console.log(a); //[ 0, 1, 2 ]

var nums = [0]
var num1 = [1, 2]
var num2 = [3, 4]
let a = nums.concat(num1, num2)
console.log(a); //[ 0, 1, 2, 3, 4 ]
  • slice() 方法可從已有的數(shù)組中返回選定的元素秽五。
    slice()方法可提取字符串的某個(gè)部分,并以新的字符串返回被提取的部分饥悴。
    注意: slice() 方法不會改變原始數(shù)組坦喘。
參數(shù): 
start:必需。規(guī)定從何處開始選取西设。如果是負(fù)數(shù)瓣铣,那么它規(guī)定從數(shù)組尾部開始算起的位置。也就是說贷揽,-1 指最后一個(gè)元素棠笑,-2 指倒數(shù)第二個(gè)元素,以此類推禽绪。
end:可選蓖救。規(guī)定從何處結(jié)束選取。該參數(shù)是數(shù)組片斷結(jié)束處的數(shù)組下標(biāo)印屁。如果沒有指定該參數(shù)循捺,那么切分的數(shù)組包含從 start 到數(shù)組結(jié)束的所有元素。如果這個(gè)參數(shù)是負(fù)數(shù)雄人,那么它規(guī)定的是從數(shù)組尾部開始算起的元素从橘。
返回值:返回一個(gè)新的數(shù)組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素础钠。

var nums = [0, 1, 2, 3]
let a = nums.slice(1, 3)
console.log(a); //[ 1, 2 ]
  • splice() 方法用于插入恰力、刪除或替換數(shù)組的元素。
    注意:這種方法會改變原始數(shù)組旗吁!踩萎。
array.splice(index,howmany,item1,.....,itemX)
參數(shù):
index   必需。規(guī)定從何處添加/刪除元素很钓。該參數(shù)是開始插入和(或)刪除的數(shù)組元素的下標(biāo)香府,必須是數(shù)字翻具。
howmany     必需。規(guī)定應(yīng)該刪除多少元素回还。必須是數(shù)字裆泳,但可以是 "0"。如果未規(guī)定此參數(shù)柠硕,則刪除從 index 開始到原數(shù)組結(jié)尾的所有元素工禾。
item1, ..., itemX 可選。要添加到數(shù)組的新元素

返回值:type(Array)  如果從 arrayObject 中刪除了元素蝗柔,則返回的是含有被刪除的元素的數(shù)組闻葵。
//插入
var arr = [1, 2, 3]

let a = arr.splice(1, 0, 4, 5)

console.log(a); //[]
console.log(arr); //[ 1, 4, 5, 2, 3 ]
//刪除
var arr = [1, 2, 3, 4, 5]

let a = arr.splice(1, 2)

console.log(a) //[]
console.log(arr); //[ 1, 4, 5 ]
//替換
var arr = [1, 2, 3]

let a = arr.splice(1, 1, 4, 5)

console.log(a); //[2]
console.log(arr); //[ 1, 4, 5, 3 ] 4,5替換了2

位置方法

  • indexOf() 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置癣丧。
array.indexOf(item,start)
參數(shù):
    item 必須槽畔。查找的元素。
    start 可選的整數(shù)參數(shù)胁编。規(guī)定在字符串中開始檢索的位置厢钧。它的合法取值是 0 到 stringObject.length - 1。如省略該參數(shù)嬉橙,則將  從字符串的首字符開始檢索早直。
返回值:Number
    元素在數(shù)組中的位置,如果沒與搜索到則返回 -1
var arr = [1, 2, 3, 4]

let i = arr.indexOf(2, 0)

console.log(i); //1
  • lastIndexOf() 方法可返回一個(gè)指定的字符串值最后出現(xiàn)的位置,在一個(gè)字符串中的指定位置從后向前搜索市框。
var arr = [1, 2, 3, 4, 2, 6]

let i = arr.lastIndexOf(2)

console.log(i); //4 最后一次出現(xiàn)是索引為4時(shí)

迭代方法

  • every()
array.every(function(currentValue,index,arr), thisValue)

every() 方法用于檢測數(shù)組所有元素是否都符合指定條件(通過函數(shù)提供)霞扬。

every() 方法使用指定函數(shù)檢測數(shù)組中的所有元素:

如果數(shù)組中檢測到有一個(gè)元素不滿足,則整個(gè)表達(dá)式返回 false 枫振,且剩余的元素不會再進(jìn)行檢測喻圃。
如果所有元素都滿足條件,則返回 true粪滤。
注意: every() 不會對空數(shù)組進(jìn)行檢測斧拍。

注意: every() 不會改變原始數(shù)組。
var arr = [1, 2, 3, 4, 2, 6]

let i = arr.every(function (item, index, arr) {
  return item < 7
})

console.log(i); //true
  • some()
some() 方法用于檢測數(shù)組中的元素是否滿足指定條件(函數(shù)提供)额衙。

some() 方法會依次執(zhí)行數(shù)組的每個(gè)元素:

如果有一個(gè)元素滿足條件饮焦,則表達(dá)式返回true , 剩余的元素不會再執(zhí)行檢測怕吴。
如果沒有滿足條件的元素窍侧,則返回false。
注意: some() 不會對空數(shù)組進(jìn)行檢測转绷。

注意: some() 不會改變原始數(shù)組伟件。
var arr = [1, 2, 3, 4, 2, 6]

let i = arr.some(function (item, index, arr) {
  return item < 7
})

console.log(i); //true 數(shù)組中有小于7的數(shù)
  • filter()
filter() 方法創(chuàng)建一個(gè)新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素议经。

注意: filter() 不會對空數(shù)組進(jìn)行檢測斧账。

注意: filter() 不會改變原始數(shù)組谴返。
var arr = [1, 2, 3, 4, 2, 6]

let i = arr.filter(function (item, index, arr) {
  return item < 3
})

console.log(i); //[ 1, 2, 2 ]
console.log(arr); //[ 1, 2, 3, 4, 2, 6 ]
  • map()
map() 方法返回一個(gè)新數(shù)組,數(shù)組中的元素為原始數(shù)組元素調(diào)用函數(shù)處理后的值咧织。

map() 方法按照原始數(shù)組元素順序依次處理元素嗓袱。

注意: map() 不會對空數(shù)組進(jìn)行檢測。

注意: map() 不會改變原始數(shù)組习绢。
var arr = [1, 2, 3, 4, 2, 6]

let i = arr.map(function (item, index, arr) {
  return item * 3
})

console.log(i); //[ 3, 6, 9, 12, 6, 18 ]
console.log(arr); //[ 1, 2, 3, 4, 2, 6 ]
  • forEach()
forEach() 方法用于調(diào)用數(shù)組的每個(gè)元素渠抹,并將元素傳遞給回調(diào)函數(shù)。

注意: forEach() 對于空數(shù)組是不會執(zhí)行回調(diào)函數(shù)的闪萄。
var arr = [1, 2, 3, 4, 2, 6]

arr.forEach(function () {
  // 具體操作
})

//和for循環(huán)類似

fill()

fill() 方法用一個(gè)固定值填充一個(gè)數(shù)組中從起始索引到終止索引內(nèi)的全部元素梧却。不包括終止索引。

fill 方法接受三個(gè)參數(shù) value败去,start 以及 end放航,start 和 end 參數(shù)是可選的,其默認(rèn)值分別為 0 和 this 對象的 length 屬性值圆裕。
var arr = [1, 2, 3, 4, 5]

let a = arr.fill(4, 2, 3) //用4替換索引2-3的元素

console.log(a); //[ 1, 2, 4, 4, 5 ]
console.log(arr); //[ 1, 2, 4, 4, 5 ]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末广鳍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子吓妆,更是在濱河造成了極大的恐慌搜锰,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耿战,死亡現(xiàn)場離奇詭異蛋叼,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)剂陡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門狈涮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鸭栖,你說我怎么就攤上這事歌馍。” “怎么了晕鹊?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵松却,是天一觀的道長。 經(jīng)常有香客問我溅话,道長晓锻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任飞几,我火速辦了婚禮砚哆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屑墨。我一直安慰自己躁锁,他們只是感情好纷铣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著战转,像睡著了一般搜立。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上槐秧,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天儒拂,我揣著相機(jī)與錄音,去河邊找鬼色鸳。 笑死社痛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的命雀。 我是一名探鬼主播蒜哀,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吏砂!你這毒婦竟也來了撵儿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狐血,失蹤者是張志新(化名)和其女友劉穎淀歇,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匈织,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡浪默,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缀匕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纳决。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖乡小,靈堂內(nèi)的尸體忽然破棺而出阔加,到底是詐尸還是另有隱情,我是刑警寧澤满钟,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布胜榔,位于F島的核電站,受9級特大地震影響湃番,放射性物質(zhì)發(fā)生泄漏夭织。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一牵辣、第九天 我趴在偏房一處隱蔽的房頂上張望摔癣。 院中可真熱鬧,春花似錦纬向、人聲如沸择浊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽琢岩。三九已至,卻和暖如春师脂,著一層夾襖步出監(jiān)牢的瞬間担孔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工吃警, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糕篇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓酌心,卻偏偏與公主長得像拌消,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子安券,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容