2017-09-20 133 views
0

我試圖列出我列表中的所有動物。我試圖使用_.each,它工作正常。但是當我使用_.map時,它們具有相同的結果。_.each vs _.map有什麼區別?

代碼:

animals = [ "dog","cat","pig" ] 

使用_.map

_.map animals, (animal)-> 
    console.log " " + animal 

    //result: dog cat pig 

使用_.each

_.each animals, (animal)-> 
    console.log " " + animal 

    //result: dog cat pig 

問題:

  1. 這兩者有什麼區別?
  2. 這兩個主要/超級功能是什麼?

我是JavaScript新手,我嘗試閱讀Underscore documentation,但我不明白一些術語。

+1

你有這些功能的閱讀文檔? –

+0

我是JavaScript新手,我嘗試閱讀Underscore文檔,但我不理解某些術語。 –

回答

1

_.each只是一個爲每個元素執行給定函數的for循環。

_.map爲每個元素收集給定函數的返回值,並按順序返回所有返回值的列表。

如果您放棄_.map的結果(如您的示例中),它與_.each的結果相同,但會浪費一些內存。

因此,功能_.map_.each的超集,但是執行明智這是不明智的,如果你實際上並不需要的結果來使用它。

+0

謝謝@Jan。感謝您的回答。 –

0

_.each沒有返回而 _.map返回一個值

示例值:

var animals = [ "dog","cat","pig" ] 

var newAnimalEach = _.each(animals,(animal)=>{ return animal+'s'}) 
console.log(newAnimalEach) // returns [ "dog","cat","pig" ] 

var newAnimalMap = _.map(animals,(animal)=>{ return animal+'s'}) 
console.log(newAnimalMap) // returns [ "dogs","cats","pigs" ] 
相關問題