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

通过在Javascript中使用高阶函数更改起始索引并增加2来操作2D数组,javascript,Javascript,假设我有一个巨大的游戏板,有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).

假设我有一个巨大的游戏板,有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])
})

使用
for
循环有什么不对?对于偶数行,你的意思是?没有什么,我只是想用高阶函数尝试一下。我计划通过在这些索引处放置一个sprite对象来迭代这些索引,就像这样<代码>精灵=精灵。创建(行索引,列索引)列=精灵