2011-06-05 36 views
14

jQuery中$.map$.grep有什麼區別?

我想盡可能簡單的回答。

回答

20

我會假定你的意思是$.grep$.map。不同之處在於,我們使用$.grep來過濾數組,而我們使用$.map將函數應用於數組中的每個項目。

這是一個更好的解釋比我可以做:

http://onwebdev.blogspot.com/2011/03/jquery-grep-and-map-example-and-syntax.html

+1

謝謝@biggs – tito11 2011-06-05 19:24:37

+0

過濾函數可能是我們可以在'map'中應用的函數,因此我們可以使用map或grep – 2017-08-20 08:56:24

8

$.map方法可以作爲一個迭代器,而是意在操縱數組並返回一個新的數組。

var items = ['A','B','C','A'];  

var items = $.map(items, function(item) { 
    if (item == 'A') 
    return null; 
    return item; 
}); 

items are now new array。 ['B','C']

var items = $.map(items, function(item) { 
    if (item == 'A') 
    return 'A'+'B'; 
    return item; 
}); 

輸出將被['AB', 'B', 'C', 'AB']

$.grep用於過濾

var items = $.grep(items, function(item) { 
     return item != 'A'; 
    }); 

項是現在['B','C']

然而

var items = $.grep(items, function(item) { 
     if (item == 'A') 
     return 'A'+'B'; 
     return item; 
    }) 

將返回['A', 'B', 'C', 'A'] 因爲它不會產生新的東西 - 它降低了現有的。

相關問題