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;

}

findsome很類似,都是尋找符合條件的,有一個就可以 不過some進去搜羅了一圈回來如果有符合條件的就返回true,而find是將符合條件的那條數據返回出來(返回第一個符合條件的對象)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM