是否可以使用箭头函数迭代嵌套数组?

Is it possible to iterate over nested arrays with arrow functions?

有点 JS n00b,刚开始等等,我目前有一个嵌套数组,我想轻松地更改其中的值。

var rects = [[new Rect, new Rect, new Rect, new Rect, new Rect],
             [new Rect, new Rect, new Rect, new Rect, new Rect]]

现在我知道我总能做到

for(let i = 0; i < rects.length; i++){
    for(let j = 0; j < rects[i].length; j++{
        rects[i][j].pos.x = 30;
        rects[i][j].pos.y = 30;
    }
}

但我想知道我是否可以使用(因为缺乏更好的措辞)嵌套箭头函数来做类似

的事情
rects.forEach(rect => {
    rect.forEach(thing => {
        thing.pos.x = 30;
        thing.pos.y = 30;
    });
});

和上面的for循环有同样的效果吗?它们看起来干净多了,我的代码看起来像一堆英文老鼠窝。

简而言之:是的,你可以。如果您已经尝试过并且出现错误,那将是一个单独且更有用的问题。

一种适用于任何版本的 JS 的技术是使用 for 循环来获取对您要使用的对象的引用。您必须小心地将它与包含虚假值的数组一起使用,这在您的示例中并非如此。

for (var i = 0, r; r = rects[i]; i++) {
    for (var j = 0, thing; thing = r[j]; j++) {
        thing.pos.x = 30;
        thing.pos.y = 30;
    }
}