我的项目包含了underscorejs作为依赖项。在内部,我需要做很多复杂的数组操作,基本上包括映射、过滤或缩减数组。我们在Array.prototype上有原生的map,filter,reduce方法。但在underscorejs中也可以使用相同的方法。
就我个人而言,使用原生方法对我来说更有意义,因为它比_(array).filter(function(){})或_.filter(array, function(){})之类的包装对象更自然。
请提个建议。
发布于 2016-04-18 15:45:41
如果您需要一些相当复杂的操作,请使用_.chain()添加下划线
所以你可以像这样链式调用:
_.chain(array).filter(function(){}).pluck('name').unique();此示例将提取筛选器中匹配数据的所有唯一名称。
与原生函数不同的是,这个库被开发为更易于使用,并提供了良好的性能,而不存在任何浏览器兼容性问题。
发布于 2016-04-18 16:15:29
这真的是一个基于观点的问题。Lodash将为您提供更好的浏览器支持和可能更好的性能,而原生函数可能更清楚它们在做什么。本机函数还处理一些带有稀疏数组的边缘情况,这些情况可能与您相关,也可能与您无关。
任何能让你的船浮起来的东西。
就我个人而言,我更倾向于一致性。如果您已经在使用下划线或lodash来实现它们的非本机实现的函数(如_.uniq或_.pick),我也会继续使用_.filter或诸如此类的东西。
https://stackoverflow.com/questions/36687991
复制相似问题