[英]convert one dimension index to two dimension index
假設我的索引= 25,並且我想將其轉換為包含五行七列的2d索引。 我怎樣才能做到這一點?
到目前為止,我想出了:
var index = 25;
var row = 5;
var col = 7;
var twod_row = (index % row)-1
var twod_col = (index % col)-1
您能幫我找出解決方法嗎?
Y
表示二維數組中行的索引,可以通過簡單的除法獲得。 X
代表應在該特定行上放置“元素”的位置的索引。
我還添加了一個檢查,以查看輸入索引是否超過了數組的大小。
const getNewValues = (idx, row = 5, col = 7) => { const Y = Math.floor(idx/ col); const X = idx % col; if (Y > (row - 1)) { return 'Index exceeds array size!'; } return { X, Y }; } console.log(getNewValues(0)); console.log(getNewValues(1)); console.log(getNewValues(25)); console.log(getNewValues(34)); console.log(getNewValues(50));
對於row
,可以使用cols
除以整數值,對於col
,可以將cols
與其余值一起使用。
function getPosition(index, cols) { return { row: Math.floor(index / cols), col: index % cols }; } console.log(getPosition(0, 7)); console.log(getPosition(1, 7)); console.log(getPosition(2, 7)); console.log(getPosition(7, 7)); console.log(getPosition(25, 7)); console.log(getPosition(34, 7));
.as-console-wrapper { max-height: 100% !important; top: 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.