通过更改起始索引并使用Javascript中的高阶函数递增2来操作2D数组

Manipulating 2D arrays by changing the start index and incrementing by 2 using Higher Order functions in Javascript

本文关键字:函数 高阶 数组 2D 操作 Javascript 索引      更新时间:2023-09-26

假设我有一个44行9列的巨大游戏板。它看起来是这样的:

var rows = Array(44).join(' ').split('').map(function() { return Array(9); });

仅使用高阶函数(循环不使用),如何首先将偶数列的循环索引从1开始,然后如何递增2进行迭代。

这就是您想要实现的目标吗?

Array(44).join(' ').split('').map(function(row,rowIndex)
{
    return Array(9).join(' ').split('').map(function(column,columnIndex)
    {
        return columnIndex *2 + 1 - rowIndex%2 ;
    });
});

这里有一个不太漂亮的ecmascript 6方式:

var rows = Array(44).join(' ').split('').map(function() { return Array(9); });
Array.from(new Array(Math.floor(rows.length/2)), (x,i) => i*2+1).map(function(i){
  console.log(i,rows[i])
})

不确定这是否算作for循环:

[for (i of rows.keys()) if (i%2==1) i].map(function(i){
  console.log(i, rows[i])
})