代码之家  ›  专栏  ›  技术社区  ›  R. Gillie

可以用箭头函数迭代嵌套数组吗?

  •  -1
  • R. Gillie  · 技术社区  · 7 年前

    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 回复  |  直到 7 年前
        1
  •  -1
  •   James    7 年前

    在任何版本的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;
        }
    }
    
        2
  •  -2
  •   Graham francescalus    7 年前

    简而言之:是的,你可以。如果你试过了,但出现了错误,那将是一个单独的、更有用的问题。