Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript推多维数组_Javascript_Arrays_Push - Fatal编程技术网

javascript推多维数组

javascript推多维数组,javascript,arrays,push,Javascript,Arrays,Push,我有这样的想法: var valueToPush = new Array(); valueToPush["productID"] = productID; valueToPush["itemColorTitle"] = itemColorTitle; valueToPush["itemColorPath"] = itemColorPath; cookie_value_add.push(valueToPush); 结果是[] 我做错了什么?数组在Java

我有这样的想法:

    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 = { };
valueToPush.productID = productID;
valueToPush.itemColorTitle = itemColorTitle;
valueToPush.itemColorPath = itemColorPath;
cookie_value_add.push(valueToPush);

每个JavaScript开发人员都必须理解JavaScript数组和JavaScript对象(关联数组)之间的一个非常基本和关键的区别。

在JavaScript中,您试图使用的键/值存储类型是对象文本,而不是数组。您错误地创建了复合数组对象,该对象碰巧具有基于您提供的键名称的其他属性,但数组部分不包含任何元素

相反,将
valueToPush
声明为对象,并将其推送到
cookie\u value\u 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);

使用
[]

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


您在何处看到“结果为[]”?如果要创建数组,请使用[]文字符号,而不是新数组。此外,如果要存储常规键值对,请使用普通对象而不是数组:
var-toPush={};toPush.productId=…
结果是在我的cookie中,我将值存储到其中,存储的值越多,出现的[]就越多……数组也是对象。因此,在原始代码中,属性就在那里,而不仅仅是
[]
@Y.Shoham,是的,数组是对象。只是
[]
属性对他们有特殊的意义。您只能使用基于0的整数,这是OPs问题的根源。
cookie_value_add.push([productID,itemColorTitle, itemColorPath]);
arrayToPush.push([value1, value2, ..., valueN]);