gpt4 book ai didi

javascript var警报但使用时未定义

转载 作者:行者123 更新时间:2023-11-30 07:45:35 25 4
gpt4 key购买 nike

这很奇怪。检查一下:

 for( var i = 0; i <= videos.length; i ++ ){

alert(videos[i].id); // this works and alerts the correct number

var foo = videos[i].id; // firebug says "videos[i] is undefined"

}

有 3 个视频。在 FF 中,这会警告所有 3 个视频 ID,然后失败,说 videos[i] 未定义。完全不知道。

最佳答案

去掉 =在你的for循环条件。

for( var i = 0; i < videos.length; i ++ ){
...
}

<= ,您正在迭代索引,比 Array 的实际索引值大 1 ,因此您正在迭代返回 undefined 的无效索引.

例如……

如果你有array('A','B','C') , 长度为 3 .现在,如果您迭代到 3 <= i ,并包括 0 ,因为在 Javascript 中数组以开头,你实际上会循环 4 次,而不是 3 次。

A的索引值是0 , 不是 1 ,所以你需要在 i 之前停止等于长度,直到i才继续等于长度,因为 0 index 本质上是添加到循环的总长度中,即 3+1。在这个数组上循环 4 次就太多了,因此 <而不是 <= .你想在 4 点之前停止,而不是在 4 点之后停止,而是在 5 点之前停止。

此外,缓存 Array 的长度通常是一个好习惯。 , 因为有些浏览器没有优化它。

关于javascript var警报但使用时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7169729/

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