我试图在列表中打印所有动物。我尝试使用_.each
,它工作正常。但是当我使用_.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
问题:
我是JavaScript的新手,我试图阅读Underscore documentation,但我不明白一些术语。
答案 0 :(得分:1)
_.each
只是一个for循环,它为每个元素执行给定的函数。
_.map
收集每个元素的给定函数的返回值,并按顺序返回所有返回值的列表。
如果您丢弃_.map
的结果(如您的示例中所示),它与_.each
的结果相同,但会浪费一些内存。
因此,功能性 _.map
是_.each
的超集,但如果您实际上不需要结果,那么在实施方面使用它是不明智的。
答案 1 :(得分:0)
_。每个都没有返回值 _.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" ]