Why is this returning: tracker.paramsToTrack is undefined
var tracker = {};
var paramsToTrack = ['a', 'b', 'c', 'd', 'e'];
for (p in paramsToTrack)
{
if(params[paramsToTrack[p]])
{
tracker.paramsToTrack[p] = params[paramsToTrack[p]];
}
}
console.log(tracker);
I'm basically checking params if 'a' through 'e' are present. If so, add them to the tracker object like so:
tracker.a = stuff
tracker.b = stuff
Thoughts on what I'm doing wrong here?
tracker.paramsToTrack[p]
Should probably be
tracker[paramsToTrack[p]]
Also, and not that you asked, you may want to eliminate the redundant array lookups:
var tracker = {};
var paramsToTrack = ['a', 'b', 'c', 'd', 'e'];
var paramName;
for (p in paramsToTrack)
{
paramName = paramsToTrack[p];
if(params[paramName])
{
tracker[paramName] = params[paramName];
}
}
console.log(tracker);
Or better yet, if you are working in a modern Javascript environment:
paramsToTrack.forEach(function (paramName) {
if(params[paramName])
{
tracker[paramName] = params[paramName];
}
});