我的小提琴:http://jsfiddle.net/gVwPw/3/
我搜索并发现:
但是我不能做我正在尝试的事情。
我已在线建立订单输入页面,他们可以动态地向订单添加新行。每个新行应该是一个包含细节的数组,就像这样(我在这里使用PHP作为数组格式,因为我不知道正确的javascript格式)
Array
(
[order_line_1] => Array
(
[sku] => afd433
[uom] => CS
[quantity] => 5
)
)
我无法以这种方式存储它。我尝试了很多方法。帮助?!
答案 0 :(得分:2)
JavaScript确实支持多维数组。有几种方法可以与数组进行交互。
您可以将其他数组推送到原始数组中,如下所示:
originalArray.push(newArray);
您可以像这样显式设置数组的索引:
originalArray[1] = newArray;
如果您使用对象作为PHP关联数组的模拟:
orders['orderLine1'] = newArray;
我个人会使用push,因为它会智能地将元素添加到数组中而不会破坏任何内容并保持“先进先出”顺序。
这样的事情:
// This array exists above in your scope
var orders = [];
// Whenever you are creating a new order line
var orderLine = [];
orderLine.push({
sku: 'afd433',
uom: 'CS',
quantity: 5
});
// Whenever you are finished adding line-items to your order line
orders.push(orderLine1);
答案 1 :(得分:1)
在JavaScript中执行此操作的最简单方法是保留外部数组,但要使数组的每个元素都是标准JavaScript对象。语法如下所示:
var arr = [
{ "sku": afd433, // assuming that afd433 is a variable, not a string
"uom": "CS", // assuming that CS is a string, not a variable
"quantity": 5
} // if you have more elements, add a , then a new object with the {} syntax
];
间距无关紧要;以下是等效的,更简洁: var arr = [{“sku”:afd433,“uom”:“CS”,“quantity”:5}];
如果数组只包含一个元素,那么它们并不意味着什么,所以我会让它看起来像多个元素:
var arr = [
{"sku": afd433, "uom": "CS", "quantity": 5},
{"sku": afd334, "uom": "SC", "quantity": 7},
{"sku": afd434, "uom": "SS", "quantity": 2}
];
请注意,var x = []
是创建数组的简写,您可以通过列出元素对其进行初始化。最基本的例子是var digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
。 {}
语法是创建JavaScript动态对象的简写,其中任何参数都可以使用上面的语法设置为任何值。