2 回答
TA贡献1848条经验 获得超2个赞
对基于的输出进行硬编码i并不是一个可行的解决方案。您要输出的属性值可以通过使用模运算符 ( %) 和除法来获得:
var columns = 4,
rows = 5,
positions = [],
totalCount = columns * rows;
for (var i = 0; i < totalCount; i++) {
let r = Math.ceil(i / columns);
let c = (i % columns) + 1;
positions.push({
column: c,
row: r,
column_count: r,
row_count: c
});
}
console.log(positions);
TA贡献2036条经验 获得超8个赞
使用两个 for 循环是您想要轻松捕获 x/y 信息的方法。其中 x 代表左/右,y 代表上/下。
这就是你要找的吗?
var columns = 4,
rows = 5;
var positions = [],
for (let x = 1; x <= columns; x++) {
for(let y=1;y<=rows;y++){
var informationObject = {
"column": x,
"row": y,
"column_count": y,
"row_count": x,
};
positions.push(informationObject);
}
}
console.log(positions);
添加回答
举报