簡體   English   中英

將一維索引轉換為二維索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM