gpt4 book ai didi

javascript - JavaScript 性能中的空数组测试

转载 作者:行者123 更新时间:2023-12-02 18:34:04 26 4
gpt4 key购买 nike

http://jsperf.com/testing-for-empty-array

我想知道在 JavaScript 中测试空数组的最佳方法是什么,并发现了一些奇怪的结果。据我所知,你永远不应该使用以下内容进行测试:

if (arr == true)
// do stuff

我认为其解释与:

if (arr)
// do stuff

使用arr == true明显变慢是否有原因?

最佳答案

测试数组是否为空的唯一好方法是使用arr.length

让我们看看不同的情况。

  1. if(arr === true) 始终为 false,因为数组不是 bool 值。

    if(arr !== false && arr !== true) 出于同样的原因将返回 true!

  2. if(arr) 将返回 true 或 false,这取决于数组是否已设置。如果var arr = [],它会返回true,但它是一个空数组。

    事实上,即使 var 不是数组,它也会返回 true。

  3. if(arr[0]) 如果单元格中有索引为 0 的值,则返回 true。即使存在,也不意味着它是空的,因为您可以设置像这样的单元格 var arr=[]; arr[1] = 'value'arr[0] 将返回 false,因为它未设置,但数组的长度为 2(有一个单元格)。

最后,查看数组是否为空的最佳方法如下:if(arr && arr.length)

如果您知道已经创建了数组,则不需要检查 arr 是否存在,否则,它将防止出现任何错误。然后,检查数组的长度,如果您没有更改像这样的值:arr.length = 1000,它会告诉您数组是否为空。

关于javascript - JavaScript 性能中的空数组测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17509019/

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