在Javascript中从二维数组获取列
我目前正在尝试制作一个有2名玩家的游戏,为了检查字段,我需要检查数组的列而不是行 这是我目前拥有的代码:在Javascript中从二维数组获取列,javascript,arrays,Javascript,Arrays,我目前正在尝试制作一个有2名玩家的游戏,为了检查字段,我需要检查数组的列而不是行 这是我目前拥有的代码: /* Array containing the playing field 8 x 8 C0 C1 C2 C3 C4 C5 C6 C7 R0[0][0][0][0][0][0][0][0] R1[0][0][0][0][0][0][0][0] R2[0][0][0][0][0][0][0][0] R3[0][0][0][0][
/* Array containing the playing field 8 x 8
C0 C1 C2 C3 C4 C5 C6 C7
R0[0][0][0][0][0][0][0][0]
R1[0][0][0][0][0][0][0][0]
R2[0][0][0][0][0][0][0][0]
R3[0][0][0][0][0][0][0][0]
R4[0][0][0][0][0][0][0][0]
R5[0][0][0][0][0][0][0][0]
R6[0][0][0][0][0][0][0][0]
R7[0][0][0][0][0][0][0][0]
*/
var row0 = [1,2,3,4,5,6,7,8],
row1 = [0,0,0,0,0,0,0,0],
row2 = [0,0,0,0,0,0,0,0],
row3 = [0,0,0,0,0,0,0,0],
row4 = [0,0,0,0,0,0,0,0],
row5 = [0,0,0,0,0,0,0,0],
row6 = [0,0,0,0,0,0,0,0],
row7 = [0,0,0,0,0,0,0,0];
var field = [row0,row1,row2,row3,row4,row5,row6,row7];
console.log(field[0][0]); // Get the first item in the array
单击一列将发送1-8(8列)的数字,这将进入以下功能:
function doeZet(id) {
// check alle cellen van 8 -> 0
for (j=7; j>=0; j--) {
console.log(id)
console.log(field[j,id-1]);
}
}
但是,这将返回行id而不是id中的列,我不确定如何修复此问题
非常感谢您的帮助
提前谢谢
在Gavriel的帮助下编辑解决方案:
function doeZet(id) {
// check alle cellen van 8 -> 0
for (j=7; j>=0; j--) {
if(field[j][id-1] == 0)
{
field[j][id-1] = 1
console.log(j)
return j
}
}
}
而不是:
console.log(field[j,id-1]);
你需要:
console.log(field[j][id-1]);
字段[j,id-1]的意思是:字段[x],x是一个表达式:
j,id-1
,该表达式等于id-1传递给doeZet函数的id是什么?字段[j,id-1]相当于字段[id-1],正确的用法应该是字段[j][id-1]。j是doeZet函数中的列id,但我不知道你想得到什么。你能给这个问题添加一个例子吗?我想知道是否有一个1或2放在那里(如果条件==0),这场比赛被称为四连胜,但有两名玩家对战。如果有编号,我希望循环执行以下操作:转到id中的下一行,在下一行中放置正确的玩家编号(它将作为参数获得),然后返回列编号和行号。请编辑问题,并在底部添加所需的解释。注意:您的评论仍然不清楚,这就是为什么我要求提供一个示例,例如:“在字段中有上述值,当我调用doeZet(4)时,我希望返回X。”但是请注意,您的矩阵中充满了0-s,为了让我们能够理解你想要的东西,添加一些其他的值可能是明智的。我刚刚认为for循环可能不是我所需要的,你对我如何实现我在原始帖子上的评论有什么建议吗?