如何将布尔值推入数组? “未定义”错误

时间:2019-04-17 03:09:11

标签: javascript html

为什么在打印索引3时控制台打印“未定义”?我正在尝试将索引3设置为false,并在7秒后将其设置为true。

我尝试更改索引2的“ nr”,并成功尝试缩小问题的范围。

if (Math.random() < 0.005) {
    nx = Math.random()*1000; //index0
    ny = 200; //index1
    nr = 5;//index2
    var nfall = false; //index3
    Apples.push([nx,ny,nr,nfall]); //simply inserting 'false' into index 3 doesn't work either.

    setTimeout(function(){ Apples[2][2] = 500; Apples[2][3] = true;}, 7000); //3rd apple

    console.log("New circle, x:"+Apples[2][0]+" y:"+Apples[2][1]+" nr:"+Apples[2][2] +" nfall:"+Apples[2[3]]);
//What works - in 7 seconds "nr" is updated from 5 to 500, but nfall is still undefined and NOT = true

最初,我期望索引3“ nfall”的输出为false,然后期望7秒钟后索引3“ nfall”的输出为true。

谢谢

2 个答案:

答案 0 :(得分:1)

在您的console.log调用中,您正在像这样访问数组:

Apples[2[3]]

但是应该是

Apples[2][3]

在第一个版本中,您正在访问数字2 的索引3,实际上这不是错误,只是undefined

答案 1 :(得分:0)

您的问题是最后一部分-您正在访问Apples[2[3]],它不存在,并且语法无效。您想要获取Apples中的第三项(它是一个数组),然后访问该数组的第四项-只需使用Apples [2] [3]:

const Apples = [1, 2, [3, 4, 5, 6]];
console.log(Apples[2][3]);