js 數(shù)組方法總結(jié)

concat():用于連接兩個(gè)或多個(gè)數(shù)組螃征。不會(huì)更改現(xiàn)有數(shù)組皂贩,而是返回一個(gè)新數(shù)組

let arr1 = ['Java','PHP']

let arr2 = ['Go','Python']

let arr3 = ['JS']

let arr4 =arr1.concat(arr2,arr3)

console.log(arr1) //??['Java','PHP']

console.log(arr2) //??['Go','Python']

console.log(arr3) //?['JS']

console.log(arr4) //?['Java', 'PHP', 'Go', 'Python', 'JS']

copyWithin():?將數(shù)組元素復(fù)制到數(shù)組中的另一個(gè)位置脱羡,覆蓋現(xiàn)有值罚渐。不會(huì)向數(shù)組添加新元素

注意:該方法會(huì)覆蓋原數(shù)組

let arr = ['Java','PHP','Go','Python','JS']

console.log(arr.copyWithin(3,0,2)) ? //?['Java', 'PHP', 'Go', 'Java', 'PHP']

entries():?返回帶有鍵/值對(duì)的 Array Iterator 對(duì)象, ?不會(huì)改變?cè)瓟?shù)組

let arr = ['Java','PHP','Go','Python','JS']

for (let [key,value]of arr.entries()) {

console.log(key,value)

}

0?'Java'

1?'PHP'

2?'Go'

3?'Python'

4?'JS'

every():?對(duì)數(shù)組的每一項(xiàng)都運(yùn)行給定的函數(shù),若有一項(xiàng)返回 false, 則 every 停止運(yùn)行返回false,若每一項(xiàng)都為 true秧均,則返回 true食侮。不對(duì)沒(méi)有值得數(shù)組元素執(zhí)行函數(shù),不改變?cè)瓟?shù)組

let arr = [5,6,7,8,9,10]

console.log(arr.every(item => item >4)) // true

console.log(arr.every(item => item >5)) // false

fill():?用靜態(tài)值填充數(shù)組中的指定元素, 可以指定開(kāi)始和結(jié)束填充的位置目胡。如果未指定锯七,則將填充所有元素。返回改變后的數(shù)組

注釋:該方法會(huì)覆蓋原始數(shù)組

let arr = ['Java','PHP','Go','Python','JS']

// 指定開(kāi)始和結(jié)束位置

onsole.log(arr.fill('CSS', 2, 4)) // ['Java', 'PHP', 'CSS', 'CSS', 'JS']

// 不指定

console.log(arr.fill('CSS'))// ['CSS', 'CSS', 'CSS', 'CSS', 'CSS']

filter():?返回一個(gè)新數(shù)組誉己,新數(shù)組中的元素是通過(guò)檢查指定數(shù)組中符合條件的所有元素, 如果沒(méi)有元素符合條件眉尸,則返回一個(gè)空數(shù)組。

注意:filter 不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè)巨双。filter?不會(huì)改變?cè)紨?shù)組噪猾。

let arr = [2,4,6,8,10,11]

let newArr =arr.filter(item => item <8)

console.log(newArr)// [2, 4, 6]

console.log(arr)// [2, 4, 6, 8, 10, 11]

find():用于找出第一個(gè)符合條件的數(shù)組成員。它的參數(shù)是一個(gè)回調(diào)函數(shù)炉峰,所有數(shù)組成員依次執(zhí)行該回調(diào)函數(shù)畏妖,直到找出第一個(gè)返回值為true的成員,然后返回該成員疼阔。如果沒(méi)有符合條件的成員,則返回undefined半夷。

// 查找第一個(gè)小于0的負(fù)數(shù)xxxx

console.log([2,3, -1,8].find(item => item <0))// -1

findIndex():findIndex方法的用法與find方法非常類似婆廊,返回第一個(gè)符合條件的數(shù)組成員的索引值,如果所有成員都不符合條件巫橄,則返回-1淘邻。

[1,2,3,4].find(item => {

return item > 3;

})// 3

forEach(): 按順序遍歷整個(gè)數(shù)組,對(duì)于沒(méi)有值的數(shù)組元素湘换,不執(zhí)行forEach()?方法宾舅。返回值是undefined统阿。無(wú)法中途結(jié)束循環(huán)

let arr = ['Java','PHP','Go','Python','JS']

arr.forEach(item => {

console.log(item)

})

from():?從一個(gè)類似數(shù)組或可迭代對(duì)象中創(chuàng)建一個(gè)新的數(shù)組實(shí)例

var arr = Array.from('ABCDEFG')

console.log(arr) // ['A', 'B', 'C', 'D', 'E', 'F', 'G']

let arr = [1, 2, 3]?

console.log(Array.from(arr, item => item * 10)) // [10, 20, 30]

includes(): 檢查數(shù)組是否包含指定元素,包含返回 true筹我,不包含返回 false

let arr = ['Java','PHP','Go','Python','JS']

console.log(arr.includes('PHP'))// true

console.log(arr.includes('CSS'))// false

indexOf():返回元素在目標(biāo)數(shù)組中第一次出現(xiàn)的索引扶平,若未找到則返回-1。 如果想從尾到頭搜索蔬蕊,請(qǐng)使用?lastIndexOf()?方法结澄。

let arr = ['Java','PHP','Go','Python','JS']

console.log(arr.indexOf('PHP'))// 1

// 也可以指定開(kāi)始位置

console.log(arr.indexOf('PHP',3))// -1

lastIndexOf() : ?和indexOf()相同,區(qū)別在于從尾部向首部查詢

isArray(): 檢查對(duì)象是否為數(shù)組岸夯。是數(shù)組則返回 true麻献,否則返回 false

let arr = ['Java','PHP','Go','Python','JS']

let str ='aabbcc'

console.log(Array.isArray(arr))// true

console.log(Array.isArray(str))// false

toString():?把數(shù)組轉(zhuǎn)換為數(shù)組值(逗號(hào)分隔)的字符串

let arr =['Java', 'PHP', 'Go', 'Python', 'JS']

console.log(arr.toString()); //?Java,PHP,Go,Python, JS

join():?可將所有數(shù)組元素結(jié)合為一個(gè)字符串。行為類似 toString()猜扮,但是您還可以規(guī)定分隔符

let arr =['Java', 'PHP', 'Go', 'Python', 'JS']

console.log(arr.join("*")); //?Java*PHP*Go*Python*JS

keys():?返回帶有數(shù)組鍵的 Array Iterator 對(duì)象勉吻。不改變?cè)瓟?shù)組

let arr = ['Java','PHP','Go','Python','JS']

for (let key of arr.keys()) {

console.log(key)

}

// 0

//1

// 2

// 3

// 4

map():?返回一個(gè)新數(shù)組,數(shù)組中的元素為原始數(shù)組元素調(diào)用函數(shù)處理后的值旅赢。

注意:?map 不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè)餐曼。map 不會(huì)改變?cè)紨?shù)組。

let arr = [2, 4, 6, 8, 10, 11]?

let newArr = arr.map(item =>?item * 10)?

console.log(newArr) //?[20, 40, 60, 80, 100, 110]

pop():?刪除數(shù)組中最后一個(gè)元素鲜漩,并返回刪除的元素源譬,改變?cè)瓟?shù)組

let arr = ['Java', 'PHP', 'Go', 'Python']?

console.log(arr.pop()) // Python?

console.log(arr) // ['Java', 'PHP', 'Go']

push():?在數(shù)組結(jié)尾處添加一個(gè)新的元素,并返回?cái)?shù)組的新長(zhǎng)度

let arr = ['Java', 'PHP', 'Go', 'Python']?

console.log(arr.length) // 4

?console.log(arr.push('CSS')) // 5

reduce():?數(shù)組中的每一個(gè)元素依次執(zhí)行回調(diào)函數(shù)孕似,不改變?cè)瓟?shù)組

語(yǔ)法:arr.reduce(callback(prev, curVal, index, curArr),[initialValue])

prev:初始值(或者上一次回調(diào)函數(shù)的返回值)

curVal: 當(dāng)前的元素

index: 當(dāng)前元素的索引

curArr:原數(shù)組

initialValue:作為第一次調(diào)用 callback 的第一個(gè)參數(shù)

let arr = [30,7,3,10]

let num =arr.reduce((prev, curVal, index, curArr) => {

console.log(prev, curVal, index)

console.log(curArr)

return prev - curVal

})

//?30 7 1

//?[30, 7, 3, 10]

//?23 3 2

//?[30, 7, 3, 10]

//?20 10 3

//?[30, 7, 3, 10]

console.log(num)// 10


let num1 = arr.reduce((prev, curVal, index, curArr) => {?

console.log(prev, curVal, index)?

return prev - curVal?

}, 40)

//?40 30 0

//?10 7 1

//?3 3 2

//0 10 3

?console.log(num1) // -10

reduceRight():功能和reduce()功能是一樣的踩娘,不同的是reduceRight() 從數(shù)組的末尾向前執(zhí)行

reverse():用于反轉(zhuǎn)數(shù)組中元素的順序。返回反轉(zhuǎn)后的數(shù)組喉祭,改變?cè)瓟?shù)組

let arr = [1,2,3,4,5]

console.log(arr.reverse())// [5, 4, 3, 2, 1]

console.log(arr)// [5, 4, 3, 2, 1]

shift(): 刪除數(shù)組的第一個(gè)元素养渴,并返回刪除的元素,改變?cè)瓟?shù)組

let arr = ['Java', 'PHP', 'Go', 'Python']?

console.log(arr.shift()) // Java?

console.log(arr) // ['PHP', 'Go', 'Python']

slice(startIndex, endIndex): ?返回從 startIndex 開(kāi)始(包括)泛烙,到 endIndex (不包括)之間的數(shù)組, 若?endIndex?省略理卑,則選擇從開(kāi)始位置到數(shù)組末尾的所有元素。使用負(fù)數(shù)從數(shù)組末尾進(jìn)行選擇蔽氨。返回新數(shù)組藐唠,不改變?cè)瓟?shù)組

let arr = ['Java','PHP','Go','Python']

console.log(arr.slice(1,3))// ['PHP', 'Go']

console.log(arr)// ['Java', 'PHP', 'Go', 'Python']


some():?對(duì)數(shù)組的每一項(xiàng)都運(yùn)行給定的函數(shù),若有一項(xiàng)返回 true, 則 some 停止運(yùn)行返回true,若每一項(xiàng)都為 false鹉究,則返回 false宇立。不對(duì)沒(méi)有值得數(shù)組元素執(zhí)行函數(shù),不改變?cè)瓟?shù)組

let arr = ['Java','PHP','Go','Python','PHP']

let result =arr.some(item => {

console.log('arr', item ==='PHP')

return item ==='PHP'

})

//?arr false

//?arr true

console.log('result',result) //?result true

sort():?對(duì)數(shù)組的元素進(jìn)行排序自赔。改變?cè)瓟?shù)組妈嘹,返回排序后的數(shù)組。

// 按字母排序

let arr = ['Java','PHP','Go','Python','PHP']

console.log(arr.sort()) //?['Go', 'Java', 'PHP', 'PHP', 'Python']

// 按給定的函數(shù)排序

let arr = [1, 3, 2, 5, 4]?

arr = arr.sort((a, b) => b - a)

console.log(arr) //?[5, 4, 3, 2, 1]

splice():?對(duì)數(shù)組進(jìn)行刪除修改绍妨,返回被刪除的元素組成的數(shù)組润脸,改變?cè)瓟?shù)組

語(yǔ)法:array.splice(index,?length,item1, .....,itemX)

index:?指定在什么位置添加/刪除項(xiàng)目柬脸,使用負(fù)值指定從數(shù)組末尾開(kāi)始的位置。

length:?要?jiǎng)h除的項(xiàng)目數(shù)毙驯。如果設(shè)置為 0倒堕,則不會(huì)刪除任何項(xiàng)目。

item1, ..., itemX:?要添加到數(shù)組中的新項(xiàng)目尔苦。

let arr = ['Java','PHP','Go','Python']

arr.splice(1,1,'CSS','JS')

console.log(arr)// ['Java', 'CSS', 'JS', 'Go', 'Python']

unshift(): 在數(shù)組的開(kāi)頭添加新元素涩馆,并返回?cái)?shù)組的新長(zhǎng)度

let arr = ['Java', 'PHP', 'Go', 'Python']?

console.log(arr.length) // 4

console.log(arr.unshift('JS')) // 5

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市允坚,隨后出現(xiàn)的幾起案子魂那,更是在濱河造成了極大的恐慌,老刑警劉巖稠项,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涯雅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡展运,警方通過(guò)查閱死者的電腦和手機(jī)活逆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)拗胜,“玉大人蔗候,你說(shuō)我怎么就攤上這事」∪恚” “怎么了锈遥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)勘畔。 經(jīng)常有香客問(wèn)我所灸,道長(zhǎng),這世上最難降的妖魔是什么炫七? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任爬立,我火速辦了婚禮,結(jié)果婚禮上万哪,老公的妹妹穿的比我還像新娘侠驯。我一直安慰自己,他們只是感情好壤圃,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布陵霉。 她就那樣靜靜地躺著,像睡著了一般伍绳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乍桂,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天冲杀,我揣著相機(jī)與錄音效床,去河邊找鬼。 笑死权谁,一個(gè)胖子當(dāng)著我的面吹牛剩檀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播旺芽,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼沪猴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了采章?” 一聲冷哼從身側(cè)響起运嗜,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悯舟,沒(méi)想到半個(gè)月后担租,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抵怎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年奋救,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片反惕。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尝艘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姿染,到底是詐尸還是另有隱情背亥,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布盔粹,位于F島的核電站隘梨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏舷嗡。R本人自食惡果不足惜轴猎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望进萄。 院中可真熱鬧捻脖,春花似錦、人聲如沸中鼠。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)援雇。三九已至矛渴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背具温。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工蚕涤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人铣猩。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓揖铜,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親达皿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子天吓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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