My code :
n_machines = global.get("n_machines");
endtime = [];
running = [];
time_left = [];
types = ["delayed_output_timer","startup_timer"];
timer = {};
for(i = 0 ; i < types.length ; i++){
key = types[i];
//loop through parameters of timer and set default values
for(m_num = 0; m_num < n_machines; m_num ++)
{
endtime[m_num] = 0;
running[m_num] = false;
time_left[m_num] = 0;
}
timer[key] = { endtime: endtime, running : running, time_left : time_left };
}
timer.delayed_output_timer.running[0] = "TESTING";
test = timer['delayed_output_timer'].running[0];
msg = {payload:[timer,test],topic:"timer"};
return msg;
This returns an object with not only the timer.delayed_output_timer.running[0] changed but also with the object timer.startup_timer.running[0] changed.
What am I doing wrong here? I don't want to change it to an array. I want to understand why and how to change 1 of these objects arrays, not both.
Also note that I'm outside the loop when I'm changing it an I have the same problem when I try to change timer["delayed_output_timer"].running[0] = "TESTING"
Here is the output. (its in node red console but that shouldn't matter)