_.each vs _.map 有什么区别?
_.each vs _.map what is the difference?
我试图打印列表中的所有动物。我尝试使用 _.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
问题:
- 这两者有什么区别?
- 这两个的main/super作用是什么?
我是 JavaScript 的新手,我尝试阅读 Underscore documentation 但我不理解其中的一些术语。
_.each
只是一个 for 循环,它为每个元素执行给定的函数。
_.map
为每个元素收集给定函数的 return 值,并且 return 是按顺序排列的所有 return 值的列表。
如果您丢弃 _.map
的结果(如您的示例所示),它的作用与 _.each
相同,但会浪费一些内存。
因此,在功能上 _.map
是 _.each
的超集,但在实现方面,如果您实际上不需要,则使用它是不明智的结果。
_.each 没有 return 值
_.map return一个值
示例:
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" ]
我试图打印列表中的所有动物。我尝试使用 _.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
问题:
- 这两者有什么区别?
- 这两个的main/super作用是什么?
我是 JavaScript 的新手,我尝试阅读 Underscore documentation 但我不理解其中的一些术语。
_.each
只是一个 for 循环,它为每个元素执行给定的函数。
_.map
为每个元素收集给定函数的 return 值,并且 return 是按顺序排列的所有 return 值的列表。
如果您丢弃 _.map
的结果(如您的示例所示),它的作用与 _.each
相同,但会浪费一些内存。
因此,在功能上 _.map
是 _.each
的超集,但在实现方面,如果您实际上不需要,则使用它是不明智的结果。
_.each 没有 return 值 _.map return一个值
示例:
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" ]