[英]javascript push 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中,您尝试使用的键/值存储的类型是对象文字,而不是数组。 您错误地创建了一个复合数组对象,该对象恰好具有基于您提供的键名的其他属性,但该数组部分不包含任何元素。
相反,将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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.