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;
}