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

时间:2017-07-21 18:08:51

标签: javascript arrays 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循环具有相同的效果?他们看起来更干净,我的代码看起来就像是英语的老鼠窝。

2 个答案:

答案 0 :(得分:-1)

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

答案 1 :(得分:-1)

在任何版本的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;
    }
}