为什么有人更喜欢Lodash或Undercore.js实用程序库而不是另一个?
Lodash似乎是下划线的替代品,后者已经存在了更长的时间。
我认为两者都很出色,但我对它们的工作原理了解不足,无法进行有意义的比较,我想了解更多的差异。
为什么有人更喜欢Lodash或Undercore.js实用程序库而不是另一个?
Lodash似乎是下划线的替代品,后者已经存在了更长的时间。
我认为两者都很出色,但我对它们的工作原理了解不足,无法进行有意义的比较,我想了解更多的差异。
当前回答
他们非常相似,Lodash正在接手。。。
它们都是一个实用程序库,在JavaScript中占据了实用程序的世界。。。
看来Lodash现在更新得更频繁了,所以在最新的项目中使用得更多了。。。
此外,洛达什似乎比几位KBs更轻。。。
两者都有很好的API和文档,但我认为Lodash更好。。。
下面是获取数组第一个值的每个文档项的屏幕截图。。。
Undercore.js:
Lodash公司:
由于事情可能会不时更新,只需查看他们的网站。。。
洛达什牌手表
下划线.js
其他回答
Lodash的灵感来自Underscore.js,但现在它是一个更好的解决方案。你可以定制你的版本,拥有更高的性能,支持AMD,并拥有更多的功能。检查jsperf上的Lodash与Undercore.js基准测试。。。这篇关于Lodash的精彩文章:
处理集合时,最有用的功能之一是速记语法:(尽管Undercore现在也支持此语法)
var characters = [
{ 'name': 'barney', 'age': 36, 'blocked': false },
{ 'name': 'fred', 'age': 40, 'blocked': true }
];
// Using "_.filter" callback shorthand
_.filter(characters, { 'age': 36 });
// Using Underscore.js
_.filter(characters, character => character.age === 36);
// → [{ 'name': 'barney', 'age': 36, 'blocked': false }]
(摘自Lodash文档)
本·麦考密克(Ben McCormick)的《Undercore vs Lo Dash》(Undercore vs Lo Dash)是最新一篇将两者进行比较的文章:
Lodash的API是Undercore.js的超集。
在幕后,洛达什被彻底改写了。
Lodash绝对不会比Undercore.js慢。
Lodash补充了什么?
可用性改进额外功能性能提升链接的速记语法自定义生成以仅使用所需内容语义版本控制和100%代码覆盖率
如果像我一样,您期望Undercore.js和Lodash之间的使用差异列表,那么有一个从Undercore.jss迁移到Lodash的指南。
以下是留给子孙后代的现状:
下面的任何一个都是LodashUndercore _.all是Lodash _.every下划线_.compose是Lodash _.flowRightUndercore _.contains是Lodash _.includesundercore_.each不允许通过返回false退出Undercore_.findLodash在哪里_.find默认情况下,Undercore _.flatten为深,而Lodash为浅Undercore_.groupBy支持传递参数(value、index、originalArray)的iterate,而在Lodash中,_.groupBy的iteratee只传递了一个参数:(value)。未定义第三个参数的Undercore.js_.indexOf是Lodash _.indexOf具有第三个参数true的Undercore.js_.indexOf是Lodash _.sortedIndexOfUndercore_.indexBy是Lodash _.keyBy调用的核心是Lodash_.invokeMapUndercore_.mapObject是Lodash _.mapValuesUndercore_.max组合Lodash _.max和_.maxByUndercore_.min组合Lodash _.min和_.minByUndercore_.sample组合Lodash _.sample&_.sampleSizeUndercore_.object组合了Lodash _.fromPairs和_.zip对象谓词下面的省略是Lodash省略下划线_.pairs是Lodash _.to pairs谓词下面的pickBy是Lodash_.pickBy下面是Lodash地图Undercore_.sortedIndex组合了Lodash _.sorted索引和_.sorttedIndexOf迭代者的下划线_.uniq是Lodash _.uniqByUndercore _.哪里是Lodash _.filterUndercore_.isFinite与Number.isFinite不对齐(例如_.isFinite('1')在Undercore.js中返回true,但在Lodash中返回false)Undercore_.matches速记不支持深度比较(例如,_.filter(对象,{“a”:{“b”:“c”}}))下划线≥1.7&Lodash _.template语法为_.templ(字符串,选项)(数据)内存缓存是类似于地图的对象Lodash不支持许多支持_.bind的方法的上下文参数Lodash支持隐式链接、惰性链接和快捷方式融合Lodash将其过载的_头、_尾、_尾和_首字母拆分为_take,take对,drop,和drop对(即Undercore.js中的_.head(array,2)是Lodash中的_.take(array))
他们非常相似,Lodash正在接手。。。
它们都是一个实用程序库,在JavaScript中占据了实用程序的世界。。。
看来Lodash现在更新得更频繁了,所以在最新的项目中使用得更多了。。。
此外,洛达什似乎比几位KBs更轻。。。
两者都有很好的API和文档,但我认为Lodash更好。。。
下面是获取数组第一个值的每个文档项的屏幕截图。。。
Undercore.js:
Lodash公司:
由于事情可能会不时更新,只需查看他们的网站。。。
洛达什牌手表
下划线.js
Undercore.js大部分是Lodash的子集。
有时,就像现在一样,Undercore.js会有Lodash没有的一些很酷的小功能,比如mapObject。这一次为我的项目开发节省了大量时间。