我的项目包含underscorejs作为依赖项。在内部我需要做很多复杂的数组操作,基本上包括我映射或过滤或减少数组。我们在Array.prototype上有原生map,filter,reduce方法。但是下划线也可以使用相同的方法。
就个人而言,使用原生方法对我来说更有意义,因为感觉更自然,代替_(array).filter(function(){})
或_.filter(array, function(){})
这样的包裹对象。
请建议。
答案 0 :(得分:2)
如果您需要一些复杂的操作,请使用_.chain()
所以你可以像这样链接:
_.chain(array).filter(function(){}).pluck('name').unique();
此示例将提取过滤器中匹配数据的所有唯一名称。
与本机功能不同,该库已经过开发,使用起来更加简单,性能也不错,而且浏览器兼容性没有任何问题。
答案 1 :(得分:1)
这实际上是一个基于意见的问题。 Lodash将为您提供更好的浏览器支持和可能更好的性能,而本机功能可能更明确地说明他们正在做什么。本机函数还处理一些具有稀疏数组的边缘情况,这些情况可能与您无关,也可能与您不相关。
无论你的船漂浮着什么。
就个人而言,我一直都是为了保持一致。如果您已经使用下划线或lodash来实现本机未实现的功能(例如_.uniq
或_.pick
),我只是继续使用_.filter
等等。