javascript - Add properties in object with the help of a for loop and arrays -
i trying add properties object come array. code using:
var data = {}; var arr_years = [2013, 2014, 2015]; var arr_quarters2013 = ['q2', 'q3', 'q4']; var arr_quarters2014 = ['q1', 'q2', 'q3', 'q4']; var arr_quarters2015 = ['q1', 'q2', 'q3', 'q4']; function createyearobjects() { (var in arr_years) { data[arr_years[i]] = ''; } }
i trying add quarters each year array right property in object. in 2013 have q2, q3 , q4. first try. thought keeping simple trick:
function fillyearobjectswithquarters() { (var prop in data) { data[prop] = arr_quarters[prop]; } }
since did not work out, tried put string ideas ended in node giving me string 'arr_quarters2013' - 'arr_quarters2015' not want, want reference array name!
function fillyearobjectswithquarters() { (var prop in data) { var temp = prop.tostring(); var tempstring = 'arr_quarters'+temp.tostring(); console.log(tempstring); } }
also thought why not give shot , rid of possible async. task shouldn't me near async-problems still tried.
createyearobjects(); settimeout(function() { fillyearobjectswithquarters(); }, 250);
the solution according parameters you've provided, use of eval (not good)... jsfiddle code - eval solution
var data = {}; var arr_years = [2013, 2014, 2015]; var arr_quarters2013 = ['q2', 'q3', 'q4']; var arr_quarters2014 = ['q1', 'q2', 'q3', 'q4']; var arr_quarters2015 = ['q1', 'q2', 'q3', 'q4']; var current_year; var quarter_year; function createyearobjects(yearsarray) { (var i=0;i<yearsarray.length;i++) { current_year = yearsarray[i]; quarter_year = eval("arr_quarters"+current_year); //console.log("quarter_year: ",quarter_year); if (current_year) { data[current_year] = quarter_year; } } } createyearobjects(arr_years); var resultdiv = document.getelementbyid("result"); resultdiv.innerhtml = json.stringify(data);
a better solution (without eval):
jsfiddle code - without eval solution
var data = {}; var arr_years = [2013, 2014, 2015]; var arr_quarters = {} arr_quarters["2013"] = ['q2', 'q3', 'q4']; arr_quarters["2014"] = ['q1', 'q2', 'q3', 'q4']; arr_quarters["2015"] = ['q1', 'q2', 'q3', 'q4']; var current_year; var quarter_year; function createyearobjects(yearsarray) { (var i=0;i<yearsarray.length;i++) { current_year = yearsarray[i]; quarter_year = arr_quarters[current_year]; //console.log("quarter_year: ",quarter_year); if (current_year) { data[current_year] = quarter_year; } } } createyearobjects(arr_years); var resultdiv = document.getelementbyid("result"); resultdiv.innerhtml = json.stringify(data);
Comments
Post a Comment