代码之家  ›  专栏  ›  技术社区  ›  CristianC

Javascript Photoshop逐个删除路径错误?

  •  3
  • CristianC  · 技术社区  · 7 年前

    Photoshop CC 2017。使用此循环逐个删除路径会导致仅删除某些路径(共8条):

     for(i = 0; i < app.activeDocument.pathItems.length; i++) {
                 alert(i)
                 app.activeDocument.pathItems[i].remove();
            }   
    

    长度报告为8。然而,警报(i)仅显示4次。只有在多次运行循环时,才会删除所有路径。我一个接一个地删除它们,因为我想保留一个带有特定名称的路径。有什么想法吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   tallberg    7 年前

    你正在改变 pathItems 当你循环通过它。删除项目时 i 位置将有一个新项目 一、 你跳过的。 如果你向后循环,不会引起任何问题

     for(i = app.activeDocument.pathItems.length -1; i >= 0; i--) {
        alert(i)
        app.activeDocument.pathItems[i].remove();
     } 
    
        2
  •  1
  •   Tim Harding    7 年前

    您可以使用 pathItems.removeAll()