JavaScript-如何在显示为正方形/矩阵的元素线性数组中按键查找元素的x、y位置?
我有一组值:JavaScript-如何在显示为正方形/矩阵的元素线性数组中按键查找元素的x、y位置?,javascript,arrays,math,matrix,formula,Javascript,Arrays,Math,Matrix,Formula,我有一组值: var array = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p']; 直观地表示为矩阵: a b c d e f g h i j k l m n o p 我想做什么-如果给我这个数组的任何键和数组的长度,计算行和列值[x,y] 0(a)of16(数组长度)将是[0,0] 16的6(g)(数组长度)将是[1,2] 16的13(n)(数组长度)将是[3,1] 等等 我
var array = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'];
直观地表示为矩阵:
a b c d
e f g h
i j k l
m n o p
我想做什么-如果给我这个数组的任何键和数组的长度,计算行和列值[x,y]
(a)of0
(数组长度)将是16
[0,0]
16的
(g)(数组长度)将是6
[1,2]
16的
13(n)(数组长度)将是
[3,1]
- 等等
for(I=0;I
循环中的数组值,以将它们显示为容器中的平铺。我可以内联计算每个值在该循环中的[x,y]
位置,或者使用函数来计算,这并不重要
我被卡住了
var数组=['a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i'、'j'、'k'、'l'、'm'、'n'、'o'、'p'];
var size=100/Math.sqrt(array.length);
对于(var i=0;i
预先计算宽度(或高度),然后使用i%width
和Math.floor(i/width)
计算当前的x
和y
位置。(另外,在分配文本时,请确保分配给textContent
而不是innerHTML
,并尽量不要隐式创建全局变量)
var数组=['a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i'、'j'、'k'、'l'、'm'、'n'、'o'、'p'];
常量宽度=Math.sqrt(array.length);
变量大小=100/宽度;
对于(var i=0;i
预先计算宽度(或高度),然后使用i%width
和Math.floor(i/width)
计算当前的x
和y
位置。(另外,在分配文本时,请确保分配给textContent
而不是innerHTML
,并尽量不要隐式创建全局变量)
var数组=['a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i'、'j'、'k'、'l'、'm'、'n'、'o'、'p'];
常量宽度=Math.sqrt(array.length);
变量大小=100/宽度;
对于(var i=0;i
您必须首先定义最大列,在您的情况下,它是4。更新代码如下:
var maxCol = 4;
对于i
的每个增量,使用以下计算:
x = Math.floor(i / maxCol);
y = i % maxCol;
var数组=['a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i'、'j'、'k'、'l'、'm'、'n'、'o'、'p'];
var size=100/Math.sqrt(array.length);
var-maxCol=4;
var x=0;
var y=0;
对于(var i=0;i
您必须首先定义最大列,在您的情况下为4。如代码中更新的:
var maxCol = 4;
对于i
的每个增量,使用以下计算:
x = Math.floor(i / maxCol);
y = i % maxCol;
var数组=['a'、'b'、'c'、'd'、'e'、'f'、'g'、'h'、'i'、'j'、'k'、'l'、'm'、'n'、'o'、'p'];
var size=100/Math.sqrt(array.length);
var-maxCol=4;
var x=0;
var y=0;
对于(var i=0;i
我写这个问题的时间比你回答这个问题的时间多…一份爱。我写这个问题的时间比你回答这个问题的时间多…一份爱。