gpt4 book ai didi

javascript - 检查数组中的值是否已定义

转载 作者:行者123 更新时间:2023-11-29 09:52:15 25 4
gpt4 key购买 nike

我正在尝试用 0 和 1 填充一个数组,如果你将它排列成 6 x 6 的网格,就会有随机分散的直接相邻的数组。

例如:
001101
111001
001011
001110
111000

为了检查潜在值旁边是否有一个值,我需要检查数组的 4 个值。这是我遇到困难的地方。我已经尝试实现 Stackoverflow 上其他问题的解决方案,但我无法让它专门用于此 if 语句。

function initialize(){
tile = new Array(6);
first = true;
for(i = 0; i < 6; i++){
tile[i] = new Array(6);
for(j = 0; j < 6; j++){
//This is where I'm having difficulty
if(Math.random() < .75 && tile[i + 1][j + 1] != 'undefined' || tile[i - 1][j - 1] != 'undefined' || tile[i - 1][j + 1] != 'undefined' || tile[i + 1][j - 1] != 'undefined' || first){
tile[i][j] = 1;
first = false;
}else{
tile[i][j] = 0;
}
}
}
}

最佳答案

你忘记添加typeof

这就是您通常检查未定义的方式。

typeof tile[i - 1][j + 1] === 'undefined'

More info on typeof


编辑,根据你的评论,你正在做这样的事情

typeof tile[i - 1][j - 1] !== 'undefined'

并得到错误

Uncaught TypeError: Cannot read property '1' of undefined or Uncaught TypeError: Cannot read property '-1' of undefined.

两件事:您尝试访问索引 -1 似乎总是会失败。也就是说,即使您修复了这个差一错误,像

这样的表达式
tile[i - 1][j - 1]

如果

总是会出错
tile[i - 1]

本身是未定义的。所以你必须单独检查它。有点像

(typeof tile[i - 1] === 'undefined' || typeof tile[i - 1][j + 1] === 'undefined')

这样,如果 tile[i - 1] 未定义,整个表达式将在出现错误之前“短路”。

关于javascript - 检查数组中的值是否已定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20502070/

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