lodash接受v javascript切片效果

时间:2018-12-02 01:18:45

标签: javascript lodash

我的数组长度为100,000,000

max接近数组结尾时,大约需要8秒钟:

return _.take(numbers, max)

这大约需要1秒钟:

return numbers.slice(0, max)

为什么会有巨大的性能差异?

1 个答案:

答案 0 :(得分:3)

Lodash使用自己的slice数组方法(在称为baseSlice的捆绑版本中)的数组方法,可以使用see here

lodash的主要前提之一是浏览器兼容性,它们在大多数情况下都是通过使用lodash版本的各种方法来实现的。

一个很好的例子是_.take以及_.slice/_.tail/_.chunk/_.drop/_.dropRight/_.initial等方法,所有这些方法都利用了baseSlice方法,而不依赖于本机Array.slice

因此,如果您将nativelodash进行比较,您会发现本机赢钱始终如一,但这并不是让lodash大放异彩的原因……至少是 ES6