JavaScript推multidimensional array
我有这样的事情:
var valueToPush = new Array(); valueToPush["productID"] = productID; valueToPush["itemColorTitle"] = itemColorTitle; valueToPush["itemColorPath"] = itemColorPath; cookie_value_add.push(valueToPush);
结果是[];
我做错了什么?
在JavaScript中,数组必须有基于零的整数索引。 所以:
var valueToPush = new Array(); valueToPush[0] = productID; valueToPush[1] = itemColorTitle; valueToPush[2] = itemColorPath; cookie_value_add.push(valueToPush);
或者,也许你想使用对象(这是关联数组):
var valueToPush = { }; // or "var valueToPush = new Object();" which is the same valueToPush["productID"] = productID; valueToPush["itemColorTitle"] = itemColorTitle; valueToPush["itemColorPath"] = itemColorPath; cookie_value_add.push(valueToPush);
相当于:
var valueToPush = { }; valueToPush.productID = productID; valueToPush.itemColorTitle = itemColorTitle; valueToPush.itemColorPath = itemColorPath; cookie_value_add.push(valueToPush);
每个JavaScript开发人员都必须理解JavaScript数组和JavaScript对象(它们是关联数组)之间的真正根本和关键的区别。
使用[]
:
cookie_value_add.push([productID,itemColorTitle, itemColorPath]);
要么
arrayToPush.push([value1, value2, ..., valueN]);
在JavaScript中,您尝试使用的键/值存储的types是对象字面值,而不是数组。 您错误地创build了一个复合数组对象,该对象正好具有基于您提供的键名称的其他属性,但数组部分不包含元素。
相反,声明valueToPush
作为一个对象,并推到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 syntax valueToPush.productID = productID; valueToPush.itemColorTitle = itemColorTitle; valueToPush.itemColorPath = itemColorPath; cookie_value_add.push(valueToPush); // View the structure of cookie_value_add console.dir(cookie_value_add);