forEach、map、filter、some、every、find之间的区别
前言:
從一開始學了javascript中的for循環遍歷方法,到后來了解到forEach、vue中的v-for、map等方法,經常會搞不清楚其中的區別,今天就來粗略的解釋一下,
for循環我就不說了,想必大家也常用到。
forEach:
語法:
array.forEach(callback(currentValue, index, array){
????//do something })callback:?為數組中每個元素執行的函數,該函數接收三個參數,
參數一:當前數組中元素;參數二:索引; 參數三:當前數組。
map:
語法:
var?new_array = arr.map(callback[, thisArg])
forEach和map循環的區別:forEach沒有返回值,即使你給出return也不管用,map會返回一個新數組給你,園數組不會發生改變。
filter:從字面上看就是過濾篩選的意思
語法:
var?ages = [32,?33,?16,?40];
function?checkAdult(age) {
????return?age >=?18;
}
返回一個新的對象數組,不會將原有的數組進行改變。
some:用于檢測數組中的元素是否滿足條件
注意:some不會對空數組進行檢測,不會改變原始數組。
語法:
var?ages = [3,?10,?18,?20];
function?checkAdult(age) {
????return?age >=?18;
}
?
返回的是true或false。
every:用于檢測數組中的所有元素是否符合指定條件,
注意:如果數組中有一個元素沒有符合條件,則整個表達式返回的都是false,所有元素滿足時才返回true,不會對空數組進行檢測,不會改變原始數組。
語法:
var?ages = [32,?33,?16,?40];
function?checkAdult(age) {
????return?age >=?18;
}
返回的是true或false
find:返回通過測試(函數內判斷)的數組的第一個元素的值,為數組中的每個元素都調用一次函數執行。
注意:
- 當數組中的元素在測試條件時返回?true?時, find() 返回符合條件的元素,之后的值不會再調用執行函數。
- 如果沒有符合條件的元素返回 undefined
-
?find() 對于空數組,函數是不會執行的。
- ?find() 并沒有改變數組的原始值。
語法:
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
find和some很類似,都是尋找符合條件的,有一個就可以 不過some進去搜羅了一圈回來如果有符合條件的就返回true,而find是將符合條件的那條數據返回出來(返回第一個符合條件的對象)。
?
轉載于:https://www.cnblogs.com/0314dxj/p/11057743.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的forEach、map、filter、some、every、find之间的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美股迎3年最大单日暴跌!谁在收割科技泡沫
- 下一篇: 2019春总结