如何使用javascript查找2d数组中心元素的索引?

如何使用javascript查找2d数组中心元素的索引?,javascript,arrays,Javascript,Arrays,假设我们有一个二维数组的图像,如下所示: var img = [ [ { r: 255, g: 255, b: 255 }, { r: 255, g: 255, b: 255 }, { r: 255, g: 255, b: 255 } ], [ { r: 255, g: 255, b: 255 }, { r: 255, g: 255, b: 255 }, { r: 255, g: 255, b: 25

假设我们有一个二维数组的图像,如下所示:

var img = [
    [
      { r: 255, g: 255, b: 255 },
      { r: 255, g: 255, b: 255 },
      { r: 255, g: 255, b: 255 }
    ],
    [
      { r: 255, g: 255, b: 255 },
      { r: 255, g: 255, b: 255 },
      { r: 255, g: 255, b: 255 }
    ],
    [
      { r: 255, g: 255, b: 255 },
      { r: 255, g: 255, b: 255 },
      { r: 255, g: 255, b: 255 }
    ]
  ];
我们有一个3x3矩阵。每个记录代表一个像素。 现在中间的元素是第五条记录或Img[1][1]

我想在任意奇数平方矩阵中找到中间元素的索引。我该怎么做

我试着思考这个问题,并考虑使用模运算符。 我们将有一个5x5矩阵,也就是25像素。然后我会尝试将25除以2:

25/2=12,余数为25模2=1。 因此,中间元素为12+1=13

因为我们有一个5x5矩阵,这意味着矩阵中的每一行包含5个元素。 我们必须做到:

13/5=2意味着我们必须通过2行5。这意味着我们可以直接从img[0][x],img[1][x]跳到[2][x]。跳到第三行

13 mod 5=3,为了得到线内的指数,我们的意思是img[2][3],但这是错误的,因为13将位于第三位,而指数为2,因为0,1,2,所以我们将有img[2][2]

对于7x7矩阵,我注意到3x3有一个模式,我们有img[1][1],5x5有img[2][2],7x7有img[3][3]

所以我的问题是,我现在不确定它是否适用于所有偶数,以及如何将其转换为javascript代码

const row    = img[Math.floor(img.length / 2)];
const result = row[Math.floor(row.length / 2)];

这里不需要模

它总是对称的吗?或者你能有一个5x3矩阵吗?或者你甚至可以有不同数量的元素[[1,2],[1],[1,2,3]]?另一方面,对于对称奇数矩阵,你似乎想得太多了。对于5x5矩阵,您不需要计算总字段,只需取第一个数组的中间值5/2=2向下舍入/整数除法,然后再取该数组的中间值5/2。som[2][2]。适用于任何具有相同列数和行数的奇数矩阵。噢,谢谢。是的,我有时会想得太多。@Nassims,请注意,在你的5x5矩阵示例中,你忘记了减去1。正如你所说,中间的元素确实是第13个元素,但是当指数从0开始时,你应该减去1得到它的指数。。。13-1=12,12-10=2,正如你所预料的那样…: