前言:
從一開始學了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是將符合條件的那條數據返回出來
(返回第一個符合條件的對象)。