JavaScript 中有關(guān)數(shù)組對象的方法(詳解)
JS 處理數(shù)組多種方法
js 中的數(shù)據(jù)類型分為兩大類:原始類型和對象類型。
原始類型包括:數(shù)值、字符串、布爾值、null、undefined
對象類型包括:對象即是屬性的集合,當(dāng)然這里又兩個(gè)特殊的對象----函數(shù)(js中的一等對象)、數(shù)組(鍵值的有序集合)。
數(shù)組元素的添加
arrayObj.push([item1 [item2 [. . . [itemN ]]]]);
將一個(gè)或多個(gè)新元素添加到數(shù)組結(jié)尾,并返回?cái)?shù)組新長度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);
將一個(gè)或多個(gè)新元素添加到數(shù)組開始,數(shù)組中的元素自動后移,返回?cái)?shù)組新長度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);
將一個(gè)或多個(gè)新元素插入到數(shù)組的指定位置,插入位置的元素自動后移,返回""
數(shù)組元素的刪除
arrayObj.pop();
移除最后一個(gè)元素并返回該元素值
arrayObj.shift();
移除最前一個(gè)元素并返回該元素值,數(shù)組中元素自動前移
arrayObj.splice(deletePos,deleteCount);
刪除從指定位置deletePos開始的指定數(shù)量deleteCount的元素,數(shù)組形式返回所移除的元素
截取與合并
arrayObj.slice(start, [end]);
以數(shù)組的形式返回?cái)?shù)組的一部分,注意不包括 end 對應(yīng)的元素,如果省略 end 將復(fù)制 start 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]);
將多個(gè)數(shù)組(也可以是字符串,或者是數(shù)組和字符串的混合)連接為一個(gè)數(shù)組,返回連接好的新的數(shù)組
數(shù)組的拷貝
arrayObj.slice(0);
返回?cái)?shù)組的拷貝數(shù)組,注意是一個(gè)新的數(shù)組,不是指向
arrayObj.concat();
返回?cái)?shù)組的拷貝數(shù)組,注意是一個(gè)新的數(shù)組,不是指向
數(shù)組元素的排序
arrayObj.reverse();
反轉(zhuǎn)元素(最前的排到最后、最后的排到最前),返回?cái)?shù)組地址
arrayObj.sort();
對數(shù)組元素排序,返回?cái)?shù)組地址
數(shù)組元素的插入
arrayObj.splice(insertPos,0, [item1[, item2[, . . . [,itemN]]]]);
從 insertPos 位置插入指定的item元素,0代表刪除0個(gè)元素,返回空數(shù)組
數(shù)組元素的替換
arrayObj.splice(insertPos,replaceCount, [item1[, item2[, . . . [,itemN]]]]);
從 insertPos 位置刪除 replaceCount 個(gè)元素,再從 insertPos 位置添加指定的item元素,數(shù)組形式返回被刪除的元素
數(shù)組元素的位置
arrayObj.indexOf(findThing,start);
從要查找的起點(diǎn)(可選) start 開始向后找要查找的項(xiàng) findThing ,找的準(zhǔn)則是全等,找到則返回該值的位置,找不到則返回-1
arrayObj.lastIndexOf(findThing,number)
從要查找的起點(diǎn)(可選) start 開始向前找要查找的項(xiàng) findThing ,找的準(zhǔn)則是全等,找到則返回該值的位置,找不到則返回-1
數(shù)組元素的迭代
arrayObj.every()
對數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),如果該函數(shù)對每一項(xiàng)都返回 true ,則返回 true
arrayObj.filter()
對數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),返回該函數(shù)會返回 true 的項(xiàng)組成的數(shù)組
arrayObj.forEach()
對數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),這個(gè)方法沒有返回值
arrayObj.map()
對數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組
arrayObj.some()
對數(shù)組中的每一項(xiàng)運(yùn)行給定的函數(shù),如果該函數(shù)對任一項(xiàng)返回 true ,則返回 true
數(shù)組元素的歸并
arrayObj.reduce(prev, cur, index, array)
從數(shù)組的第一項(xiàng)開始,逐個(gè)便利到最后,四個(gè)參數(shù)分別為前一個(gè)值,當(dāng)前值,項(xiàng)的索引和數(shù)組對象,函數(shù)返回的任何值會作為第一個(gè)參數(shù)自動傳給下一項(xiàng)
000
arrayObj.reduceRight()
從數(shù)組的最后開始,逐個(gè)便利到第一項(xiàng),四個(gè)參數(shù)分別為前一個(gè)值,當(dāng)前值,項(xiàng)的索引和數(shù)組對象,函數(shù)返回的任何值會作為第一個(gè)參數(shù)自動傳給下一項(xiàng)
數(shù)組元素的字符串化
arrayObj.join(separator);
返回字符串,這個(gè)字符串將數(shù)組的每一個(gè)元素值連接在一起,中間用 separator 隔開。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
toSource() 返回該對象的源代碼
toString() 把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果
toLocaleString() 把數(shù)組轉(zhuǎn)換為本地?cái)?shù)組,并返回結(jié)果
valueOf() 返回?cái)?shù)組對象的原始值
ES5 新增
Array.prototype.indexOf
indexOf()方法返回在該數(shù)組中第一個(gè)找到的元素位置,如果它不存在則返回-1。
Array.prototype.lastIndexOf
Array.prototype.every
Array.prototype.some
Array.prototype.forEach
forEach為每個(gè)元素執(zhí)行對應(yīng)的方法
Array.prototype.map
map()對數(shù)組的每個(gè)元素進(jìn)行一定操作(映射)后,會返回一個(gè)新的數(shù)組
map()是處理服務(wù)器返回?cái)?shù)據(jù)時(shí)是一個(gè)非常實(shí)用的函數(shù)
Array.prototype.filter
該filter()方法創(chuàng)建一個(gè)新的匹配過濾條件的數(shù)組。
Array.prototype.reduce
reduce()可以實(shí)現(xiàn)一個(gè)累加器的功能,將數(shù)組的每個(gè)值(從左到右)將其降低到一個(gè)值
場景: 統(tǒng)計(jì)一個(gè)數(shù)組中有多少個(gè)不重復(fù)的單詞
Array.prototype.reduceRight
以上這篇JavaScript 中有關(guān)數(shù)組對象的方法(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
學(xué)習(xí)JavaScript設(shè)計(jì)模式之狀態(tài)模式
這篇文章主要為大家介紹了JavaScript設(shè)計(jì)模式中的狀態(tài)模式,對JavaScript設(shè)計(jì)模式感興趣的小伙伴們可以參考一下2016-01-01javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊頁面 移動DIV
本篇文章主要介紹javascript實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊頁面,移動DIV。話不多說,附上代碼實(shí)例。需要的朋友來看下吧2016-12-12JavaScript實(shí)現(xiàn)動態(tài)表格的方法詳解
這篇文章主要為大家介紹了JavaScript實(shí)現(xiàn)動態(tài)表格的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01Js實(shí)現(xiàn)雙擊鼠標(biāo)自動滾動屏幕的示例代碼
這篇文章主要介紹了Js實(shí)現(xiàn)雙擊鼠標(biāo)自動滾動屏幕的示例代碼。需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12JS數(shù)組去掉重復(fù)數(shù)據(jù)只保留一條的實(shí)現(xiàn)代碼
這篇文章主要介紹了JS數(shù)組去掉重復(fù)數(shù)據(jù)只保留一條的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08微信小程序?qū)㈨撁姘粹o懸浮固定在底部的實(shí)現(xiàn)代碼
這篇文章主要介紹了微信小程序?qū)㈨撁姘粹o懸浮固定在底部的實(shí)現(xiàn)代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10