JS-數(shù)組方法使用詳解 (二)

array.forEach()

array.map()

array.filter()

array.every()

array.some()

array.find()

array.findIndex()

array.reduce()

講解

array.forEach() - 為每個(gè)數(shù)組元素調(diào)用函數(shù)居凶。

定義:

  • forEach() 方法按順序?yàn)閿?shù)組中的每個(gè)元素調(diào)用一次函數(shù)。

  • array.forEach()方法使用指定函數(shù)遍歷數(shù)組粥烁。即逐一傳入數(shù)組元素到函數(shù)體內(nèi),對(duì)函數(shù)體內(nèi)的

語(yǔ)法:

array.forEach(function(currentValue, index, arr), thisValue)

返回值:

  • 返回值:undefined

示例:輸出[4,5,6]

const arr = [1, 2, 3];
arr.forEach(function(item,index){
  arr[index] = item + 3
});
console.log(arr) // [4,5,6]
</script>

array.map() - 使用為每個(gè)數(shù)組元素調(diào)用函數(shù)的結(jié)果創(chuàng)建新數(shù)組。

定義:

  • map()方法使用為每個(gè)數(shù)組元素調(diào)用函數(shù)的結(jié)果創(chuàng)建新數(shù)組美旧。

  • map() 方法按順序?yàn)閿?shù)組中的每個(gè)元素調(diào)用一次提供的函數(shù)怀大。

  • array.map()方法使用指定函數(shù)遍歷數(shù)組。即逐一對(duì)傳入到函數(shù)體的每個(gè)數(shù)組元素進(jìn)行操作,然后把每一個(gè)數(shù)組元素填充進(jìn)新數(shù)組精肃。(操作由開(kāi)發(fā)者設(shè)計(jì))

語(yǔ)法:

array.map(function(currentValue, index, arr), thisValue)
  • function: 遍歷數(shù)組的函數(shù)秤涩。必須選擇。

  • item: 接收數(shù)組元素的形參司抱,必須選擇筐眷。

  • index: 接收數(shù)組索引的形參,可選可不選习柠,但是填著也好理解一點(diǎn)匀谣。

  • arr: 接收當(dāng)前數(shù)組的形參,可選可不選资溃,但是填著也好理解一點(diǎn)武翎。

返回值:

  • 返回值:數(shù)組,包含為原始數(shù)組中的每個(gè)元素調(diào)用提供的函數(shù)的結(jié)果就是返回操作后的新數(shù)組

示例:輸出[4,5,6]

const arr = [1, 2, 3];
let arrNew = [ ]
arrNew = arr.map(function(item,index){ //map()方法自動(dòng)返回一個(gè)新數(shù)組
  return item + 3 // 設(shè)置function函數(shù)的返回值溶锭,返給map()方法
});
console.log(arrNew) // [4,5,6]

array.filter() - 使用數(shù)組中通過(guò)測(cè)試的每個(gè)元素創(chuàng)建新數(shù)組宝恶。

定義:

  • filter() 方法創(chuàng)建數(shù)組,其中填充了所有通過(guò)測(cè)試的數(shù)組元素(作為函數(shù)提供)趴捅。

  • 注釋filter()不會(huì)對(duì)沒(méi)有值的數(shù)組元素執(zhí)行該函數(shù)垫毙。

  • 注釋filter() 不會(huì)改變?cè)紨?shù)組。

  • array.filter()方法使用指定函數(shù)遍歷數(shù)組拱绑。即逐一對(duì)傳入到函數(shù)體的每個(gè)數(shù)組元素進(jìn)行條件檢測(cè)综芥,把符合條件的數(shù)組元素填充進(jìn)新數(shù)組,跳過(guò)不符合條件的數(shù)組元素猎拨。(條件由開(kāi)發(fā)者設(shè)計(jì))

語(yǔ)法:

array.filter(function(currentValue, index, arr), thisValue)
 array.filter(function(item, index, arr), this)
  • function: 遍歷數(shù)組的函數(shù)毫痕。必須選擇。

  • item: 接收數(shù)組元素的形參迟几,必須選擇消请。

  • index: 接收數(shù)組索引的形參,可選可不選类腮,但是填著也好理解一點(diǎn)臊泰。

  • arr: 接收當(dāng)前數(shù)組的形參,可選可不選蚜枢,但是填著也好理解一點(diǎn)缸逃。

  • this: 修改函數(shù)內(nèi)的this指向,默認(rèn)值undefined厂抽,可選需频。

返回值:

  • 返回值: 包含所有通過(guò)測(cè)試的數(shù)組元素的數(shù)組。如果沒(méi)有元素通過(guò)測(cè)試筷凤,則返回一個(gè)空數(shù)組昭殉。簡(jiǎn)單一句就是返回符合條件的新數(shù)組

示例:篩選大于3的數(shù)組元素

const arr = [1, 2, 3, 4, 5, 6];
let arrNew = []
arrNew = arr.filter(function (item) { //filter()方法自動(dòng)返回符合條件的數(shù)組元素
  return item > 3 // 設(shè)置function函數(shù)的返回值苞七,返給filter()方法
});
console.log(arrNew) // [4,5,6]

array.every() - 檢查數(shù)組中的每個(gè)元素是否通過(guò)測(cè)試。

定義:

  • every() 方法檢查數(shù)組中的所有元素是否都通過(guò)了測(cè)試(被作為函數(shù)提供)挪丢。

  • every() 方法對(duì)數(shù)組中存在的每個(gè)元素執(zhí)行一次函數(shù):

  • 如果找到函數(shù)返回 false 值的數(shù)組元素蹂风,every() 返回 false(并且不檢查剩余值)

  • 如果沒(méi)有出現(xiàn) false,every() 返回 true

  • 注釋every() 不對(duì)沒(méi)有值的數(shù)組元素執(zhí)行函數(shù)乾蓬。

  • 注釋every() 不改變?cè)紨?shù)組惠啄。

  • array.every()方法使用指定函數(shù)遍歷數(shù)組。即逐一對(duì)傳入到函數(shù)體的每個(gè)數(shù)組元素進(jìn)行條件檢測(cè)任内,符合條件就返回一個(gè)true,不符合條件就返回false撵渡。(條件由開(kāi)發(fā)者設(shè)計(jì))

語(yǔ)法:

array.every(function(currentValue, index, arr), thisValue)
//第二個(gè)
array.every(function(item, index, arr), this)
  • function: 遍歷數(shù)組的函數(shù)。必須選擇死嗦。

  • item: 接收數(shù)組元素的形參姥闭,必須選擇。

  • index: 接收數(shù)組索引的形參越走,可選可不選棚品,但是填著也好理解一點(diǎn)。

  • arr: 接收當(dāng)前數(shù)組的形參廊敌,可選可不選铜跑,但是填著也好理解一點(diǎn)。

  • this: 修改函數(shù)內(nèi)的this指向骡澈,默認(rèn)值undefined锅纺,可選。

返回值:

  • 布爾值肋殴。如果數(shù)組中的所有元素都通過(guò)測(cè)試囤锉,則返回 true,否則返回 false.
  • true: 當(dāng)傳入的數(shù)組元素全部返回true時(shí)护锤,返回true官地。
  • false: 當(dāng)傳入的數(shù)組元素有一個(gè)返回false,則返回false烙懦。

示例

var arr = [1,2,3]
var result = arr.every(function(item){
  return item > 0
})
console.log(result) // true

array.some() - 檢查數(shù)組中的任何元素是否通過(guò)測(cè)試驱入。

定義:

  • some() 方法檢查數(shù)組中的任何元素是否通過(guò)測(cè)試(作為函數(shù)提供)。

  • some() 方法對(duì)數(shù)組中存在的每個(gè)元素執(zhí)行一次函數(shù):

  • 如果找到函數(shù)返回真值的數(shù)組元素氯析,some() 返回真(并且不檢查剩余值)否則返回 false

  • 注釋:some() 對(duì)沒(méi)有值的數(shù)組元素不執(zhí)行函數(shù)亏较。

  • 注釋:some() 不改變?cè)紨?shù)組。

  • array.some()方法使用指定函數(shù)遍歷數(shù)組掩缓。即逐一對(duì)傳入到函數(shù)體的數(shù)組元素進(jìn)行條件檢測(cè)雪情,符合條件就返回一個(gè)true并停止檢測(cè),不符合條件就返回false。(條件由開(kāi)發(fā)者設(shè)計(jì))

語(yǔ)法:

array.some(function(currentValue, index, arr), thisValue)//第一種
array.some(function(item, index, arr), this)//第二種
  • function: 遍歷數(shù)組的函數(shù)你辣。必須選擇巡通。

  • item: 接收數(shù)組元素的形參尘执,必須選擇。

  • index: 接收數(shù)組索引的形參扁达,可選可不選,但是填著也好理解一點(diǎn)蠢熄。

  • arr: 接收當(dāng)前數(shù)組的形參跪解,可選可不選,但是填著也好理解一點(diǎn)签孔。

  • this: 修改函數(shù)內(nèi)的this指向叉讥,默認(rèn)值undefined,可選饥追。

返回值:

  • 布爾值图仓。如果數(shù)組中的任何元素通過(guò)測(cè)試,則返回 true但绕,否則返回 false救崔。
  • true: 當(dāng)傳入的數(shù)組元素有一個(gè)返回true時(shí),返回true捏顺。
  • false: 當(dāng)傳入的數(shù)組元素全部返回false六孵,則返回false。

示例

var arr = [1,2,3]
var result = arr.some(function(item){
  return item > 2
})
console.log(result) // true

array.find() - 返回?cái)?shù)組中第一個(gè)通過(guò)測(cè)試的元素的值幅骄。

定義:

  • find() 方法返回?cái)?shù)組中第一個(gè)通過(guò)測(cè)試的元素的值(作為函數(shù)提供)劫窒。

  • find() 方法對(duì)數(shù)組中存在的每個(gè)元素執(zhí)行一次函數(shù):

  • 如果找到函數(shù)返回 true 值的數(shù)組元素,則 find() 返回該數(shù)組元素的值(并且不檢查剩余值)否則返回 undefined

  • 注釋find() 不對(duì)空數(shù)組執(zhí)行該函數(shù)拆座。

  • 注釋find() 不會(huì)改變?cè)紨?shù)組主巍。

  • array.find()方法使用指定函數(shù)遍歷數(shù)組。即逐一對(duì)傳入到函數(shù)體的數(shù)組元素進(jìn)行條件查找挪凑,找到符合條件的數(shù)組元素則返回true,然后返回該元素孕索。(條件由開(kāi)發(fā)者設(shè)計(jì))
    語(yǔ)法:

array.find(function(currentValue, index, arr), thisValue)//第一種
array.find(function(item, index, arr), this)//第二種
  • function: 遍歷數(shù)組的函數(shù)。必須選擇躏碳。

  • item: 接收數(shù)組元素的形參檬果,必須選擇。

  • index: 接收數(shù)組索引的形參唐断,可選可不選选脊,但是填著也好理解一點(diǎn)。

  • arr: 接收當(dāng)前數(shù)組的形參脸甘,可選可不選恳啥,但是填著也好理解一點(diǎn)。

  • this: 修改函數(shù)內(nèi)的this指向丹诀,默認(rèn)值undefined钝的,可選翁垂。

返回值:

  • 如果數(shù)組中的任何元素通過(guò)測(cè)試,則返回?cái)?shù)組元素值硝桩,否則返回 undefined沿猜。
  • 就是返回找到的元素。沒(méi)返回 undefined碗脊。

示例

var arr = [1,2,3]
var result = arr.find(function(item){
  return item == 2
})
console.log(result) // 2

array.findIndex() - 返回?cái)?shù)組中通過(guò)測(cè)試的第一個(gè)元素的索引啼肩。

定義:

  • findIndex() 方法返回?cái)?shù)組中通過(guò)測(cè)試的第一個(gè)元素的索引(作為函數(shù)提供)。

  • findIndex() 方法對(duì)數(shù)組中存在的每個(gè)元素執(zhí)行一次函數(shù):

  • 如果找到函數(shù)返回 true 值的數(shù)組元素衙伶,則 findIndex() 返回該數(shù)組元素的索引(并且不檢查剩余值)否則返回 -1

  • 注釋:findIndex() 不會(huì)為沒(méi)有值的數(shù)組元素執(zhí)行函數(shù)祈坠。

  • 注釋:findIndex() 不會(huì)改變?cè)紨?shù)組。

  • array.findIndex()方法使用指定函數(shù)遍歷數(shù)組矢劲。即逐一對(duì)傳入到函數(shù)體的數(shù)組元素進(jìn)行條件查找赦拘,找到符合條件的數(shù)組元素則返回true,然后返回該元素的索引。(條件由開(kāi)發(fā)者設(shè)計(jì))

語(yǔ)法:

array.findIndex(function(currentValue, index, arr), thisValue)//第一種
array.find(function(item, index, arr), this)//第二種
  • function: 遍歷數(shù)組的函數(shù)芬沉。必須選擇躺同。

  • item: 接收數(shù)組元素的形參,必須選擇丸逸。

  • index: 接收數(shù)組索引的形參笋籽,可選可不選,但是填著也好理解一點(diǎn)椭员。

  • arr: 接收當(dāng)前數(shù)組的形參车海,可選可不選,但是填著也好理解一點(diǎn)隘击。

  • this: 修改函數(shù)內(nèi)的this指向侍芝,默認(rèn)值undefined,可選埋同。

返回值:

  • 如果數(shù)組中的任何元素通過(guò)測(cè)試州叠,則返回?cái)?shù)組元素索引,否則返回 -1凶赁。
  • 返回找到元素的索引咧栗。

示例

var arr = [1,2,3]
var result = arr.findIndex(function(item){
  return item == 2
})
console.log(result) // 1

array.reduce() - 反轉(zhuǎn)數(shù)組中元素的順序。

定義:

  • reverse() 方法反轉(zhuǎn)數(shù)組中元素的順序虱肄。

  • 注釋?zhuān)?/strong>reverse() 方法將改變?cè)紨?shù)組致板。

  • array.findIndex()方法為數(shù)組的每個(gè)值(從左到右)執(zhí)行提供的函數(shù)。該方法將數(shù)組縮減為單個(gè)值咏窿。

語(yǔ)法:

array.reduce(function(total, item, index, arr), initialValue)
  • function: 遍歷數(shù)組的函數(shù)斟或。必須。

  • total: 用于求和的變量集嵌。

  • item: 接收數(shù)組元素的形參萝挤,必須御毅。

  • index: 接收數(shù)組索引的形參,可選怜珍。

  • arr: 接收當(dāng)前數(shù)組的形參端蛆,可選。

  • initialValue: 初始值酥泛。

返回值:

  • 數(shù)組今豆,表示反轉(zhuǎn)后的數(shù)組。
  • 返回回調(diào)函數(shù)累積的結(jié)果揭璃。

示例

var arr = [1, 2, 3]
var result = arr.reduce(function (total, item) {
    return total += item
}, 0)
console.log(result) // 6

寫(xiě)作者:

  • 黃永福??????

定義:
語(yǔ)法:


返回值:
示例


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末晚凿,一起剝皮案震驚了整個(gè)濱河市亭罪,隨后出現(xiàn)的幾起案子瘦馍,更是在濱河造成了極大的恐慌,老刑警劉巖应役,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件情组,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡箩祥,警方通過(guò)查閱死者的電腦和手機(jī)院崇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)袍祖,“玉大人底瓣,你說(shuō)我怎么就攤上這事」簦” “怎么了谢澈?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵奴潘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我茁肠,道長(zhǎng),這世上最難降的妖魔是什么缩举? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任垦梆,我火速辦了婚禮,結(jié)果婚禮上仅孩,老公的妹妹穿的比我還像新娘托猩。我一直安慰自己,他們只是感情好辽慕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布站刑。 她就那樣靜靜地躺著,像睡著了一般鼻百。 火紅的嫁衣襯著肌膚如雪绞旅。 梳的紋絲不亂的頭發(fā)上摆尝,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音因悲,去河邊找鬼堕汞。 笑死,一個(gè)胖子當(dāng)著我的面吹牛晃琳,可吹牛的內(nèi)容都是我干的讯检。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼卫旱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼人灼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起顾翼,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤投放,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后适贸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體灸芳,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年拜姿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烙样。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蕊肥,死狀恐怖谒获,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情壁却,我是刑警寧澤批狱,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站儒洛,受9級(jí)特大地震影響精耐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜琅锻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一卦停、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恼蓬,春花似錦惊完、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春凿跳,著一層夾襖步出監(jiān)牢的瞬間件豌,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工控嗜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茧彤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓疆栏,卻偏偏與公主長(zhǎng)得像曾掂,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子壁顶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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