比方说,我有索引= 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
你将不得不解释这个问题,为了让人们理解这两个问题之间的映射,甚至提供一个例子列表将会有所帮助。 –