如何获取循环内数组值的位置信息

我需要获取循环内数组位置的信息。

我有两个变量。

var columns = 4, 
    rows = 5;

因此,根据 i 的值(循环中),数组将如下所示:

https://img3.mukewang.com/64d4850a0001e77803510330.jpg

现在,我必须提供一系列信息。


var positions = [], 

    totalCount = columns * rows;


for (var i = 1; i <= totalCount; i++) {

    var informationObject = {

        "column": "column number",

        "row": "row number",

        "column_count": "column count",

        "row_count": "row count",

    };


    positions.push(informationObject);

}


console.log(positions);

其详细架构如下:

https://img2.mukewang.com/64d485150001f9dd06350414.jpg

我不想根据位置信息来不同地准备这个位置数组。

你可能会问我尝试过什么。我实际上是在做自定义代码。就像if(i=7){//do operation},我的意思是完全人性化的代码。这变得非常奇怪。我认为有一种方法可以动态地做到这一点。

请帮忙。提前致谢。


慕码人8056858
浏览 108回答 2
2回答

慕尼黑5688855

对基于的输出进行硬编码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);

慕桂英3389331

使用两个 for 循环是您想要轻松捕获 x/y 信息的方法。其中 x 代表左/右,y 代表上/下。这就是你要找的吗?var columns = 4,&nbsp;&nbsp; &nbsp; rows = 5;var positions = [],&nbsp;for (let x = 1; x <= columns; x++) {&nbsp; &nbsp; for(let y=1;y<=rows;y++){&nbsp; &nbsp; var informationObject = {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "column": x,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "row": y,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "column_count": y,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "row_count": x,&nbsp; &nbsp; &nbsp; &nbsp; };&nbsp; &nbsp; &nbsp; &nbsp; positions.push(informationObject);&nbsp; &nbsp; }}console.log(positions);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript