【问题标题】:What are the differences between the map methods in ES6 and lodash?ES6 和 lodash 中的 map 方法有什么区别?
【发布时间】:2017-03-21 05:49:47
【问题描述】:

一个能比另一个做得更多吗?我应该坚持使用 lodash 还是只使用 ES6 的 map 方法?

【问题讨论】:

  • 我假设 ES6 映射是指阵列上可用的旧映射。答案是几乎没有区别。 Lodash 有它的map,它几乎可以直接替代浏览器。对向后兼容很有用。除此之外......您直接在数组上调用一个,另一个通过 lodash 调用。 Lodash 还可以映射更多的东西,比如迭代对象。
  • 那么 lodash 可以映射对象吗?很高兴知道。
  • 是的,虽然_.map(obj, func)会映射到values并返回一个数组,但是有一个单独的_.mapObject会产生一个对象。

标签: javascript ecmascript-6 lodash


【解决方案1】:

它们都符合 ECMA-262 规范,因此它们是相同的。但是,出于可移植性(可能还有性能/可读性),我个人更喜欢内置的 ES6 映射方法。

【讨论】:

  • 不,它们不相同。 _.map 可以做的远远超过股票map
  • @georg 请详细说明
  • @matanso 您可以使用 lodash 简写,例如,如果您有一组看起来像 {name: "bob", age: 42} 的人,您可以使用 _.map(people, 'name') 这是_.property('name') 的简写,然后您将离开只有人的名字。
  • @georg,你最好写一个答案。
【解决方案2】:

除了@georg 对使用lodash _.map 作为_.property 的简写的可能性的评论之外,lodash map 可以用于任何可迭代对象,而 ES6 map 只能用于数组。

【讨论】:

    【解决方案3】:

    lodash 可以处理 undefined

    let a = undefined
    
    _.map(a, (e) => {console.log("hello")})
    // vs    
    a.map((e) => {console.log('this is an error')}). //undefined error 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-14
      • 2018-03-08
      • 2018-05-14
      • 2014-12-28
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      相关资源
      最近更新 更多