I have an empty Array
var kpi_arr = [];
I push in an Object
{
   kpi_id: "18",
   kpi_name: "CSAT",
   kpi_target: "7",
   kpi_months: [
      {
         monthname: "Aug 2017",
         month_value: "",
         month_id: "201",
         month_kpi: "18"
      },
      {
         monthname: "Sep 2017",
         month_value: "",
         month_id: "301",
         month_kpi: "18"
      }
   ]
}
The Array now has one object with the correct values. However when i push in a second object
{
   kpi_id: "16",
   kpi_name: "Updated handbooks",
   kpi_target: " 100%",
   kpi_months: [
      {
         monthname: "Aug 2017",
         month_value: "",
         month_id: "201",
         month_kpi: "16"
      },
      {
         monthname: "Sep 2017",
         month_value: "",
         month_id: "301",
         month_kpi: "16"
      }
   ]
}
the array content appears as below
[
{
   kpi_id: "18",
   kpi_name: "CSAT",
   kpi_target: "7",
   kpi_months: [
      {
         monthname: "Aug 2017",
         month_value: "",
         month_id: "201",
         month_kpi: "16"
      },
      {
         monthname: "Sep 2017",
         month_value: "",
         month_id: "301",
         month_kpi: "16"
      }
   ]
},
{
   kpi_id: "16",
   kpi_name: "Updated handbooks",
   kpi_target: " 100%",
   kpi_months: [
      {
         monthname: "Aug 2017",
         month_value: "",
         month_id: "201",
         month_kpi: "16"
      },
      {
         monthname: "Sep 2017",
         month_value: "",
         month_id: "301",
         month_kpi: "16"
      }
   ]
}
]
Note that all month_kpi property values change to 16. What could be the reason for this? I'm pushing these objects into the array via a for-loop in the format below.
var rolling_months_arr = get_rolling_13month_period();
var kpi_arr = [];
for(){
 var month_kpi = getValueFromWherever();
 var myobject = getObject(rolling_months_arr, month_kpi)
 kpi_arr.push(myobject )
}
//------------------------------------------
function getObject(rolling_months_arr, month_kpi)
{       
    for ( var i = 0; i < rolling_months_arr.length; i++)
    {
        rolling_months_arr[i].month_kpi = month_kpi;
    }
    return rolling_months_arr;
}
function get_rolling_13month_period()
{       
    var month_arr = [];             
    for(){
      month_arr.push({ "monthname": rolling_month,  "month_id": month_id });
      }
    return month_arr;
}
 
    