繁体   English   中英

javascript push多维数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM