为什么有人更喜欢Lodash或Undercore.js实用程序库而不是另一个?

Lodash似乎是下划线的替代品,后者已经存在了更长的时间。

我认为两者都很出色,但我对它们的工作原理了解不足,无法进行有意义的比较,我想了解更多的差异。


当前回答

Lodash获得了_.mapValues(),它与Undercore.js的_.mapObject()相同。

其他回答

我只是发现了一个对我来说很重要的区别。Lodash的_.extend()的非Underscore.js兼容版本不复制类级别定义的财产或方法。

我在CoffeeScript中创建了一个Jasmine测试,演示了这一点:

https://gist.github.com/softcraft-development/1c3964402b099893bd61

幸运的是,lodash.underscore.js保留了Undercore.js复制所有内容的行为,这对我来说是理想的行为。

Lodash获得了_.mapValues(),它与Undercore.js的_.mapObject()相同。

我不确定OP是不是这个意思,但我遇到了这个问题,因为我在搜索从Undercore.js迁移到Lodash时必须记住的问题列表。

如果有人发表一篇文章,列出这些差异的完整列表,我将非常感激。让我从我用艰难的方式学到的东西开始(也就是说,那些让我的代码在生产中爆炸的东西:/):

_默认情况下,Undercore.js中的.sflat为deep,必须将true作为第二个参数传递,使其变浅。在Lodash中,默认情况下它是浅的,将true作为第二个参数传递将使其变深!:)_Underscore.js中的.last接受第二个参数,该参数告诉您需要多少元素。在Lodash,没有这样的选择。您可以使用.sslice来模拟这一点_.第一期(同一期)_可以以多种方式使用Undercore.js中的.template,其中之一是提供模板字符串和数据并获取HTML(或者至少这是一段时间前的工作方式)。在Lodash中,您会收到一个函数,然后您应该向该函数提供数据。_(something).map(foo)在Undercore.js中工作,但在Lodash中,我不得不将其重写为_.map(somethink,foo)。也许这只是TypeScript问题。

他们非常相似,Lodash正在接手。。。

它们都是一个实用程序库,在JavaScript中占据了实用程序的世界。。。

看来Lodash现在更新得更频繁了,所以在最新的项目中使用得更多了。。。

此外,洛达什似乎比几位KBs更轻。。。

两者都有很好的API和文档,但我认为Lodash更好。。。

下面是获取数组第一个值的每个文档项的屏幕截图。。。

Undercore.js:

Lodash公司:

由于事情可能会不时更新,只需查看他们的网站。。。

洛达什牌手表

下划线.js

Undercore.js大部分是Lodash的子集。

有时,就像现在一样,Undercore.js会有Lodash没有的一些很酷的小功能,比如mapObject。这一次为我的项目开发节省了大量时间。