gpt4 book ai didi

javascript - 为什么一个函数在满数组时比在空数组时工作得更快

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:44 24 4
gpt4 key购买 nike

我有两个函数实现,它们获取数组的最后一个元素。

function first(array) {
var length = array ? array.length : 0;
return length ? array[length - 1] : undefined;
}

function second(array) {
return array ? array[array.length - 1] : undefined;
}

第二个函数处理完整数组的速度比第一个快,但处理空数组的速度慢。为什么以及如何修复它?

完整数组的基准:http://jsperf.com/lodash-f-last/

空数组基准测试: http://jsperf.com/lodash-f-last/2

最佳答案

如果您希望您的代码运行得更快,您永远不应该越界读取:V8 去优化执行该操作的代码。

在您的 second 函数中,您正是这样做的 - 您读取了边界。而是在阅读之前进行边界检查:

function xlast(array) {
return (array && array.length > 0) ? array[array.length - 1]
: undefined;
}

关于javascript - 为什么一个函数在满数组时比在空数组时工作得更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29630600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com