在javascript中映射3x3网格

在javascript中映射3x3网格,javascript,Javascript,在练习理解数组以及如何循环数组时,我编写了一个函数,将每行、列和两条对角线映射到它们自己的键值对中 有没有一种更有效的循环方式?我知道使用两个for循环是不好的做法,因为如果网格大于3x3,则会导致高复杂性 let board=[ [1,2,3], [4,5,6], [7,8,9] ]; 常量映射器=板=>{ 允许 map={}, d1=[], d2=[]; for(设i=0;i{ map['C'+C]=map['C'+C]| |[]; 地图['C'+C].推(列); }); }); 控制台

在练习理解数组以及如何循环数组时,我编写了一个函数,将每行、列和两条对角线映射到它们自己的键值对中

有没有一种更有效的循环方式?我知道使用两个for循环是不好的做法,因为如果网格大于3x3,则会导致高复杂性

let board=[
[1,2,3],
[4,5,6],
[7,8,9]
];
常量映射器=板=>{
允许
map={},
d1=[],
d2=[];
for(设i=0;i控制台日志(映射器(板))下面的内容可以说更清楚,并且可以通过使用reduce进一步改进

board=[
[1,2,3],
[4,5,6],
[7,8,9]
];
diag=0;map={}
board.forEach((行、右、右)=>{
变量行=arr.length-1;
地图['R'+R]=行;
map['D'+1]=map['D'+1]| |[];
map['D'+2]=map['D'+2]| |[];
map['D'+1][diag]=行[diag];
映射['D'+2][rows diag]=行[rows diag]
diag++;
row.forEach((col,c)=>{
map['C'+C]=map['C'+C]| |[];
地图['C'+C].推(列);
}); 
});

控制台日志(map)这是一个代码审查问题,不是stackoverflow问题。我投票结束这个问题,因为它属于on。这不是也在某种程度上使用了两个for循环吗?是的,但是没有其他方法可以到达董事会的所有部分。