add variable to array in a loop

47,711

Solution 1

Move the definition of allSizes = [] outside the loop.

Currently, you're "resetting" the value of allSizes at each loop.

Solution 2

You're setting up the empty array inside of the for loop. It's resetting it each time. Move it above the for loop:

var allSizes = []; //set up empty array
for ( i = 0; i< app.activeDocument.textFrames.length; i++) {
     .....
Share:
47,711
Lukasz
Author by

Lukasz

Updated on October 04, 2020

Comments

  • Lukasz
    Lukasz over 3 years

    using extend script to push a variable into an array it's basically javascript. any idea what I am doing wrong?

    if ( app.documents.length > 0 ) {
    
        for ( i = 0; i< app.activeDocument.textFrames.length; i++) {
             var allSizes = []; //set up empty array
    
            textArtRange = app.activeDocument.textFrames[i].textRange;
            var fontName =  textFonts.getByName("Nobile");
            alert (fontName);
            textArtRange.characterAttributes.textFont = fontName;
            var fontSizes = textArtRange.characterAttributes.size;
    
            allSizes.push(fontSizes)
            alert (fontSizes);
    
        }
            alert (allSizes);
    }
    

    the alerts for allSizes only return single values, not the array.

  • Lukasz
    Lukasz over 12 years
    wow, that was totally it. what a noob move, ha! can't believe i didn't see that. thanks!
  • Alex Turpin
    Alex Turpin over 12 years
    @Lukasz: You need to accept an answer to this question. Do it by clicking the green checkmark next to the answer that helped you most. meta.stackexchange.com/questions/5234/…