gpt4 book ai didi

javascript - 返回 NaN 的数组数组

转载 作者:行者123 更新时间:2023-11-29 10:51:17 27 4
gpt4 key购买 nike

那么为什么 myarray[bla][bl] 总是等于 NaN?如果我对一维 (myarray[bla]) 做同样的事情,我会得到数字。

var bla = 'blabla';
var bl = 'bla';
var myarray = [];
for (i = 0; i < 10; i++) {
if (!myarray[bla]) {
myarray[bla] = [];
}
myarray[bla][bl] += i;
console.log(myarray[bla][bl] + " + " + i);
}​

最佳答案

好的,让我们逐步执行循环,将变量 bla 的实例替换为 'blabla' 的字符串值:

if (!myarray['blabla']) {
myarray['blabla'] = [];
}

javascript 中的数组是按整数值索引的。您的代码在这里所做的是向名为 blabla 的数组实例添加一个 expando 属性。即:

myarray.blabla = [];

现在重新考虑你的增量语句:

myarray['blabla'][bl] += i;

或者,使用 expando 属性:

myarray.blabla.bl  // remember that "myarray.blabla" is set to the empty array above

它试图做的是访问空数组上名为 bl 的属性。这就是为什么您会在此处得到 undefined

无论如何,作为最佳实践,您可能希望避免在 javascript 中使用数组,例如哈希表,因为这样的问题一定会在足够长的时间后突然出现。

关于javascript - 返回 NaN 的数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9709801/

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