Skip to main content
Participant
September 17, 2014
Answered

Remove swatches not working

  • September 17, 2014
  • 2 replies
  • 472 views

I am using Javascript to script Illustrator. I have a simple for loop which goes over each swatch in the document and removes it... or so I thought. For some reason, only around half of the swatches are actually removed. No error is thrown so I have no idea why it is not working.

Code:

  for(var i = 0; i < activeDocument.swatches.length; i++) {

    activeDocument.swatches.remove();

  }

Also note that this works for a few swatches but when you add any significant amount (I have 16), it only removes about half of them.

This topic has been closed for replies.
Correct answer Silly-V

Maybe try in reverse?

Also be aware you do not want to remove the registration and the no-color swatch.

        var doc=app.activeDocument;

        for(var i=doc.swatches.length-1; i>1; i--){

            doc.swatches.remove();

        }

2 replies

Larry G. Schneider
Community Expert
Community Expert
September 17, 2014

As V points out when working with anything with an index, you need to remove things in reverse so as not to change the index.

Silly-V
Silly-VCorrect answer
Legend
September 17, 2014

Maybe try in reverse?

Also be aware you do not want to remove the registration and the no-color swatch.

        var doc=app.activeDocument;

        for(var i=doc.swatches.length-1; i>1; i--){

            doc.swatches.remove();

        }