cube cube - 3 months ago 15
Javascript Question

Passing in dynamic key:value pairs to an object literal?

I am using this slice of code (shown below) in an attempt to populate the object literal named

Parameters
inside the for loop. I need the
key:value
pair to be assigned in conjunction with the loops iterating
i
variable, as such:
{key_1:chunks[1],key_2:chunks[2]}
. However, my code isn't working. The
'key_'+i
is not being reflected in the literal.

There's something I am missing here, obviously. Can someone tell me what it is?...Thanks.

var Parameters=[];
var len = chunks.length;
for (var i = 0; i < len; i++) {
var key='key_'+i
obj= { key : chunks[i]};
Parameters.push(obj)
}

Answer

EDIT: Use var obj = {}; obj[key] = chunks[i];

Because ECMAScript treats the key in this {key:1} as literal.