JavaScript从给定宽度和高度的平面数组中确定行、列和元素的相对位置
JavaScript determine rows, columns and element relative position from a flat array given width and height
这是我遇到的一个更复杂问题的简化版本。我把它简化了以便更好地解释。
我有一个单维数组,它代表一个网格,每行3个元素,每列4个元素。我无法将数组转换成多维数组。数组看起来像这样:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'];
我知道数组的高度和宽度(作为元素的数量):
var width = 3;
var height = 4;
我正在寻找一些方法来迭代数组并确定它所在的任何元素,并将函数应用于同一行中的所有元素。
。
// do something here to derive the
// starting index and ending index of the row this element is in
// so I apply a function to only elements in that row
var startOfRow = getStartOfRow(myArray); // 2
var endOfRow = getEndtOfRow(myArray); // 6
// in this case I need to know i=3 is the start of the row
// and i=5 is the end of the row
// so i can do this:
for(i=0;i<myArray.length;i++) {
if(i > startOfRow && i < endOfRow) {
// affect all elements in the second row
doStuff(myArray[i]);
}
};
在循环中,Math.floor(i / 3)
将给您行,i % 3
将给您列,两个索引都从0开始。
所以尝试……
for(i=0;i<myArray.length;i++) {
var row = Math.floor(i / 3);
var col = i % 3;
// affect all elements in the second row
if(row==1) {
doStuff(myArray[i]);
}
};
相关文章:
- 我可以获得相对于被点击元素的确切点击位置吗
- 固定位置菜单时滚动,直到它击中一个相对容器的底部
- 在不移动元件的情况下从相对位置更改为固定位置
- 打开相对于鼠标位置的CSS3/HTML5模式对话框
- Javascript元素相对于屏幕的位置
- 块相对于父对象的位置
- 是否可以模拟带有“位置:相对”的元素的“位置:绝对”放置
- Android默认浏览器:谷歌地图制作“;位置:相对;元素在页面顶部滚动
- 如何使用位置:相对左侧:220px 移动具有柔和效果的元素
- 拖放位置相对
- 菜单位置相对于介质查询的文档高度
- 定位Div "Fixed"垂直和绝对;水平位置:相对位置;容器Div
- 什么可以防止位置:相对的;左:0;右:200 px;不影响元素的宽度
- 如何使
位置:相对嵌套在一个位置:绝对
- 位置相对内容计算高度
- 将按钮放置在元素的右上角,位置:相对
- CSS JQuery Div开始位置相对于窗口大小
- 如何在图像顶部放置标记,标记的位置相对于图像给出
- 使用AngularJS UI使工具提示位置相对于窗口大小
- 子元素位置相对工作错误