比方說,我有索引= 25,我想將它轉換爲5行7列的2d索引。我怎樣才能做到這一點?將一維索引轉換爲二維索引
var index = 25;
var row = 5;
var col = 7;
var twod_row = (index % row)-1
var twod_col = (index % col)-1
你能幫助我弄清楚如何解決這個問題:
到目前爲止,我已經想出了?
比方說,我有索引= 25,我想將它轉換爲5行7列的2d索引。我怎樣才能做到這一點?將一維索引轉換爲二維索引
var index = 25;
var row = 5;
var col = 7;
var twod_row = (index % row)-1
var twod_col = (index % col)-1
你能幫助我弄清楚如何解決這個問題:
到目前爲止,我已經想出了?
對於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; }
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));
什麼是* 2-d指數*? – Rajesh
你將不得不解釋這個問題,爲了讓人們理解這兩個問題之間的映射,甚至提供一個例子列表將會有所幫助。 –