javascript push multidimensional array javascript push multidimensional array arrays arrays

javascript push multidimensional array


Arrays must have zero based integer indexes in JavaScript. So:

var valueToPush = new Array();valueToPush[0] = productID;valueToPush[1] = itemColorTitle;valueToPush[2] = itemColorPath;cookie_value_add.push(valueToPush);

Or maybe you want to use objects (which are associative arrays):

var valueToPush = { }; // or "var valueToPush = new Object();" which is the samevalueToPush["productID"] = productID;valueToPush["itemColorTitle"] = itemColorTitle;valueToPush["itemColorPath"] = itemColorPath;cookie_value_add.push(valueToPush);

which is equivalent to:

var valueToPush = { };valueToPush.productID = productID;valueToPush.itemColorTitle = itemColorTitle;valueToPush.itemColorPath = itemColorPath;cookie_value_add.push(valueToPush);

It's a really fundamental and crucial difference between JavaScript arrays and JavaScript objects (which are associative arrays) that every JavaScript developer must understand.


Use []:

cookie_value_add.push([productID,itemColorTitle, itemColorPath]);

or

arrayToPush.push([value1, value2, ..., valueN]);


In JavaScript, the type of key/value store you are attempting to use is an object literal, rather than an array. You are mistakenly creating a composite array object, which happens to have other properties based on the key names you provided, but the array portion contains no elements.

Instead, declare valueToPush as an object and push that onto cookie_value_add:

// Create valueToPush as an object {} rather than an array []var valueToPush = {};// Add the properties to your object// Note, you could also use the valueToPush["productID"] syntax you had// above, but this is a more object-like syntaxvalueToPush.productID = productID;valueToPush.itemColorTitle = itemColorTitle;valueToPush.itemColorPath = itemColorPath;cookie_value_add.push(valueToPush);// View the structure of cookie_value_addconsole.dir(cookie_value_add);