Matthew Keracher
Matthew Keracher

Reputation: 93

How can I keep an array filled outside of a function?

This question is part of finding a solution to a larger problem. However, I am wondering if there is a way to use a function to fill an Array. Based on the test code below, it seems arrays automatically empty after the function. I am looking to have a function that fills the array repeatedly, and another one that triggers to paste the resulting array.Note the paintArray=[] defined outside of the functions.

The console logs '1' for fillArray() but when I run logArray() right after it logs [].

const paintArray = []


function logArray(){

console.log(paintArray)


}

function fillArray(){

paintArray.push(1)
console.log(paintArray)

}

Upvotes: 0

Views: 225

Answers (2)

Cooper
Cooper

Reputation: 64040

Save and Retrieve Array from Properties Service

function saveArray(a) {
  PropertiesService.getScriptProperties().setProperty("myarray",JSON.stringify(a));
}

function getArray() {
  return JSON.parse(PropertiesService.getScriptProperties().getProperty("myarray"));
}

Upvotes: 0

Nikko J.
Nikko J.

Reputation: 5533

You can use Properties Service this way:

var scriptProp = PropertiesService.getScriptProperties();

function logArray(){
  Logger.log(scriptProp.getProperty("paintArray"))
}

function fillArray(){
  var obj = scriptProp.getProperty("paintArray")
  if(obj){ //check if paintArray Object exists
    var arr = JSON.parse(obj); //parse the value to array
    arr.push(1); //push value 1
    scriptProp.setProperty("paintArray", JSON.stringify(arr)) //set new value of arr to properties
  }else{
    scriptProp.setProperty("paintArray", "[1]"); //set initial value if paintArray object is undefined
  }
} 

First run:

enter image description here

Second run:

enter image description here

Third run:

enter image description here

Upvotes: 1

Related Questions