Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在二维阵列中查找点的对角线_Javascript_Arrays_Multidimensional Array - Fatal编程技术网

Javascript 如何在二维阵列中查找点的对角线

Javascript 如何在二维阵列中查找点的对角线,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我有一个二维数组,如下所示: const矩阵=[ [0, 0, 0, 0], [0, 2, 1, 0], [0, 1, 2, 0], [0, 0, 0, 0] ] 如果给定了单元格的x和y,例如2和1(matrix[2][1]是1),我如何找到所有通过所提供单元格的对角线(两个数组,每个数组都包含对角线中每个单元格的点)?矩阵(阵列)将始终是对称和方形的(确切地说,我有一个8x8网格) 例如: const矩阵=[ [0, 0, 0, 0], [0, 2, 1, 0], [0, 1, 2, 0]

我有一个二维数组,如下所示:

const矩阵=[
[0, 0, 0, 0],
[0, 2, 1, 0],
[0, 1, 2, 0],
[0, 0, 0, 0]
]
如果给定了单元格的
x
y
,例如
2
1
matrix[2][1]
1
),我如何找到所有通过所提供单元格的对角线(两个数组,每个数组都包含对角线中每个单元格的点)?矩阵(阵列)将始终是对称和方形的(确切地说,我有一个8x8网格)

例如:

const矩阵=[
[0, 0, 0, 0],
[0, 2, 1, 0],
[0, 1, 2, 0],
[0, 0, 0, 0]
];
常数cellX=2,cellY=1;
//代码。。。
常量对角线fromtopleft=[0,1,0];
常量对角线fromtopright=[0,1,1,0]

如果你能找到每一条线,而不仅仅是对角线(垂直和水平,但我自己能计算出来),你就可以得到额外的分数。

你可以迭代行(和相应的索引),并计算两条对角线上相应的x坐标。当它们在范围内时,可以将相应的值添加到相关数组中:

函数对角线(矩阵、单元格x、单元格y){
let forward=[];//根据正斜杠形状的对角线:/
设backward=[];//根据反斜杠形状的对角线:\
设n=矩阵长度;
矩阵.forEach((行,y)=>{
设x=cellX-(cellY-y);
如果(x>=0&&x=0&&x日志(对角线(矩阵、单元格x、单元格y))我假设输入矩阵并不总是对称的,对吗?另外,输入矩阵总是正方形吗?@yunzen它们总是对称的,正方形的,尽管它们会更大。确切地说,我将有一个8x8网格。@trincot两者都是基于0的。我解决了这个问题是的,特林科特。谢谢你指出这一点。我修好了,它能用!尽管我必须通读这些数学知识才能知道是怎么回事;)这看起来向前实际上是向后的。是的,这取决于你怎么称呼他们。我在“反斜杠”中使用了向后的like(
\
),在“正斜杠”中使用了向前的like(
/