Be sure to assign the variable a value first before trying to add to it, otherwise you are adding elements in the null object.
The 'element' field can be used to access an array's elements.
i.e.
#Global.assuntos = new Array();
#Global.assuntos.add("autotutela");
#Global.assuntos.add("jurisdição");
#Global.assuntos.add("inafastabilidade da jurisdição");
#Global.assuntos.size() == 3;
#Global.assuntos.element[0] == "autotutela";
#Global.assuntos.element[1] == "jurisdição";
var text = "";
for (element in #Global.assuntos.element) {
text = text + element + ",";
};
text == "autotutela,jurisdição,inafastabilidade da jurisdição,";
In Self every object field can have multiple values, so using array access on a field accesses the field index, not the element index of the field value.
i.e.
#Global.assuntos =+ "autotutela";
#Global.assuntos =+ "jurisdição";
#Global.assuntos =+ "inafastabilidade da jurisdição";
#Global.size(#assuntos) == 3;
#Global.assuntos[0] == "autotutela";
#Global.assuntos[1] == "jurisdição";
var text = "";
for (element in #Global.assuntos) {
text = text + element + ",";
};
text == "autotutela,jurisdição,inafastabilidade da jurisdição,";
So you don't need to create an array, but can if you wish. As a variable you can use the array index, just not as a field on another object (then it is the field index).
#Global.assuntos = new Array();
#Global.assuntos.add("autotutela");
#Global.assuntos.add("jurisdição");
#Global.assuntos.add("inafastabilidade da jurisdição");
var assuntos = #Global.assuntos;
assuntos.size() == 3;
assuntos.element[0] == "autotutela";
assuntos.element[1] == "jurisdição";
var text = "";
for (element in assuntos) {
text = text + element + ",";
};
text == "autotutela,jurisdição,inafastabilidade da jurisdição,";