1.forEach()
定義:迭代數組的每一個元素倔撞。(對數組的每一個元素都調用一次指定函數)
語法:
arr.forEach(function(數組元素,數組索引,數組){},this)
參數:
- Function(){} 必選
調用函數的時候荐操,可以在函數內傳入一下三個參數
item: 數組中的一個元素元素震嫉,必須赤赊。
index: 數組索引,可選渊涝。
arr: 當前數組慎璧,可選。 - this :可選
返回值:undefined
注意:對于沒有值的數組元素跨释,不執(zhí)行forEach() 方法胸私。
示例:
let arr = [1,2,3,4,5]
// arr.forEach(function(數組元素,數組索引,數組){},this)
arr.forEach(function(item,index,arr){
console.log(item + 1)//[2,3,4,5,6]
})
2.map()
定義:
- map() 方法通過對每個數組元素執(zhí)行函數來創(chuàng)建新數組。
- map() 方法不會對沒有值的數組元素執(zhí)行函數煤傍。
- map() 方法不會更改原始數組盖文。
語法:
array.map(function(tiem, index, arr), thisValue)
參數:
- Function(){} 必選
調用函數的時候,可以在函數內傳入一下三個參數
item: 數組中的一個元素元素蚯姆,必須五续。
index: 數組索引,可選龄恋。
arr: 當前數組疙驾,可選。 - this :可選
返回值:數組郭毕,為原始數組中的每個元素調用函數的結果它碎。
注意:
- map()函數不會對空數組進行檢測
- map()函數不會改變原始數組,它形成的是 一個新的數組
示例:
let arr = [1,2,3,4,5,6]
arr.map(function(item){
console.log(item + 2) // 3,4,5,6,7,8
})
3.Filter
定義:
- filter()創(chuàng)建一個新的數組显押,新數組中的元素是通過檢查指定數組中符合條件的所有元素扳肛。
用法:
- filter() 方法用于把Array中的某些元素過濾掉,然后返回剩下的未被過濾掉的元素乘碑。
語法:
array.filter(function(item index, arr), thisValue)
參數:
- Function(){} 必選
調用函數的時候挖息,可以在函數內傳入一下三個參數
item: 數組中的一個元素元素,必須兽肤。
index: 數組索引套腹,可選绪抛。
arr: 當前數組,可選电禀。 - this :可選
返回值:包含所有通過測試的數組元素的數組幢码。如果沒有元素通過測試,則返回一個空數組尖飞。
注意:
- 1症副、filter() 不會對空數組進行檢測;
- 2葫松、filter() 不會改變原始數組瓦糕。
示例:
let arr = [1,2,3,4,5]
let arr = [1,2,3,4,5,6]
let res = arr.filter((arr1) => {
return arr1 >= 2
})
console.log(res) // [2,3,4,5,6]
4.Find
定義:返回數組中第一個通過測試的元素的值
用法
find() 方法為數組中的每個元素都調用一次函數執(zhí)行:
- 當數組中的元素在測試條件時返回 true 時, find() 返回符合條件的元素,之后的值不會再調用執(zhí)行函數腋么。
- 如果沒有符合條件的元素返回 undefined
語法:
array.find(function(currentValue, index, arr), thisValue)
參數:
第一個參數:function(currentValue, index, arr) 必需。為數組中的每個元素運行的函數亥揖。
函數參數:
currentValue 必需珊擂。當前元素。
index 可選费变。當前元素的數組索引摧扇。
arr 可選。當前元素所屬的數組對象
第二個參數:thisValue
可選挚歧。要傳遞給函數以用作其 "this" 值的值扛稽。
如果此參數為空,就是undefined滑负。
返回值:如果數組中的任何元素通過測試在张,則返回數組元素值,否則返回 undefined矮慕。
注意:
- find() 對于空數組帮匾,函數是不會執(zhí)行的。
- find() 并沒有改變數組的原始值痴鳄。
示例:
let arr = [1,2,3,4,5,6]
let res = arr.find((arr1) => {
return arr1 >= 2
})
console.log(res) // 2
5.Findindex
定義:返回數組中通過條件的第一個元素的索引
語法:
array.findIndex(function(currentValue, index, arr), thisValue)
參數:
第一個參數:function(currentValue, index, arr) 必需瘟斜。為數組中的每個元素運行的函數。
函數參數:
currentValue 必需痪寻。當前元素螺句。
index 可選。當前元素的數組索引橡类。
arr 可選蛇尚。當前元素所屬的數組對象
第二個參數:thisValue
可選。要傳遞給函數以用作其 "this" 值的值猫态。
如果此參數為空佣蓉,就是undefined披摄。
返回值:
如果數組中的任何元素通過條件,則返回數組元素索引勇凭,否則返回 -1疚膊。
注意:
- findIndex() 對于空數組,函數是不會執(zhí)行的虾标。
- findIndex() 并沒有改變數組的原始值寓盗。
示例:
let arr = [1,2,3,4,5,6]
let res = arr.findIndex(arr1=> {
return arr1 > 2
})
console.log(res) // 2
6.Every
定義:檢驗數組中的所有元素是否都通過了設定的條件(被作為函數提供)。every() 方法對數組中存在的每個元素執(zhí)行一次函數璧函。
語法:
array.every(function(數組元素, index, arr), thisValue)
參數:
- Function(){} 必選
調用函數的時候傀蚌,可以在函數內傳入一下三個參數
item: 數組中的一個元素元素,必須蘸吓。
index: 數組索引善炫,可選。
arr: 當前數組库继,可選箩艺。 - this :可選
返回值:*布爾值。如果數組中的所有元素都通過設定的條件宪萄,則返回 true艺谆,否則返回 false.
注意:
- every() 不會對空數組進行檢測
- every() 不會改變原始數組
示例:
// every每一個元素是否滿足指定條件,沒有滿足返回false,滿足返回true
// let arr = [1,2,3,4,5,6]
let arr = [5,6,7,8,9,9] //true
let res = arr.every(function(item,index,arr){
//數組中的每個元素的值都要大于4,才會返回true
return item > 4
})
console.log(res) //false
7.Some
定義:檢查數組中的任何元素是否通過特定條件
注意
some() 不會對空數組進行檢測拜英。
some() 不會改變原始數組静汤。
語法:
array.some(function(currentValue, index, arr), thisValue)
參數:
第一個參數:function(currentValue, index, arr) 必需。為數組中的每個元素運行的函數居凶。
函數參數:
sum:用于存儲數組之和的變量虫给。
currentValue 必需。當前元素排监。
index 可選狰右。當前元素的數組索引。
arr 可選舆床。當前元素所屬的數組對象
第二個參數:thisValue
可選棋蚌。要傳遞給函數以用作其 "this" 值的值。
如果此參數為空挨队,則值 "undefined" 將作為其 "this" 值傳遞
返回值:布爾值谷暮。如果數組中的任何元素通過測試,則返回 true盛垦,否則返回 false湿弦。
示例:
let arr = [1,2,3,4,5,6]
// 調用some方法查詢arr數組里大于4的數
let res = arr.some(function(item){
return item > 4
})
console.log(res) //true
8.reduce
定義:接收一個函數作為累加器,數組中的每個值(從左到右)開始增減腾夯,最終計算為一個值颊埃。
語法:
array.reduce(function(prev, current, currentIndex, arr), initialValue)
參數:
prev:函數傳進來的初始值或上一次回調的返回值
current:數組中當前處理的元素值
currentIndex:當前元素索引
arr:當前元素所屬的數組本身
initialValue:傳給函數的初始值
返回值:返回計算結果
注意: reduce() 對于空數組是不會執(zhí)行回調函數的蔬充。
示例:
let arr = [1,2,3,4,5,6]
let res = arr.reduce(function(prev,item){
return prev + item
})
console.log(res) //21
9.reduceRight
定義:reduceRight() 方法的功能和 reduce() 功能是一樣的,不同的是 reduceRight() 從數組的末尾向前將數組中的數組項做累加班利。
語法:
array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue)
參數:
- total 必需饥漫。初始值, 或者計算結束后的返回值。
- currentValue 必需罗标。當前元素
- currentIndex 可選庸队。當前元素的索引
- arr 可選。當前元素所屬的數組對象闯割。
- initialValue 可選彻消。傳遞給函數的初始值
返回值:
注意:reduce() 對于空數組是不會執(zhí)行回調函數的
示例:
let arr = [1,2,3,4,5,6,7,8,9,10]
// reduceRight() 方法從數組的最后一項開始,向前遍歷到第一項宙拉。
let res = arr.reduceRight(function(prev,item,index,arr){
return prev + item
})
console.log(res) //55
reduce() 方法和reduceRight()區(qū)別是:reduce() 方法從數組的第一項開始宾尚,遍歷到最后。而
reduceRight() 方法從數組的最后一項開始鼓黔,向前遍歷到第一項央勒。-
every和Some的區(qū)別
- some(): 如果有一個元素滿足條件,則表達式返回true , 剩余的元素不會再執(zhí)行檢測澳化。
如果沒有滿足條件的元素,則返回false稳吮。 - every() : 如果數組中檢測到有一個元素不滿足缎谷,則整個表達式返回 false ,且剩余的元素不會再進行檢測灶似。
如果所有元素都滿足條件列林,則返回 true。
- some(): 如果有一個元素滿足條件,則表達式返回true , 剩余的元素不會再執(zhí)行檢測澳化。