LoginSignup
0
0

消えてくれないループ removeするとindexが詰められる

Last updated at Posted at 2024-02-06

Adobe Extendscriptを書いていて、選択したものを消したいのに消えない、でもいくつかだけ消える。ということがあり、実は当たり前のことに気づいていなかったので、自分メモ

元のコード
var doc = app.activeDocument;
var sel = doc.selection;

for(var i=0; i < sel.length; i++) {
    sel[i].remove();
}

これで全部消えるだろうと思っていましたが、消えませんでした。

正解のコード
var doc = app.activeDocument;
var sel = doc.selection;

while (sel.length > 0) {
    sel[0].remove();
}

または

正解のコード(2)
for (var i = sel.length - 1; i >= 0; i--) {
    sel[i].remove();
}

sel[n]remove()すると、sel[n+1]だったものがsel[n]になるため、iを0から増加させてループしても全部は消えないということでした。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0