【发布时间】:2013-03-25 21:39:45
【问题描述】:
我需要将具有匹配订单号的表中的行分组,然后遍历分组。
我有这段代码正在工作,它正在创建完美的数组,数据方面:
var multItems = [];
// Combine items under orders,
$('tr.order').each(function(){
var orderNum = $(this).find('.ordernumber').val();
if ( ($('tr.order .ordernumber[value="' + orderNum + '"]').length > 1 ) && !(orderNum in multItems) ){
$('tr.order .ordernumber[value="' + orderNum + '"]').each(function(){
if (!(orderNum in multItems)){
multItems[orderNum] = [];
}
multItems[orderNum].push(this);
});
}
});
// Create new tr with order totals (of each item)
for (var i = multItems.length - 1; i >= 0; i--) {
// Code
};
但它显然创建了一个长度为 0 的数组,其中 multItems = [],但定义了 multItems[orderNumber]...如果我不知道订单号,就无法访问它.
我可以单独制作一个订单号数组,但感觉肯定是很长的路要走。如果我只是创建一个编号数组,我怎么知道将订单中的项目弹出到哪个编号?
【问题讨论】:
-
现在
orderNum是一个字符串,如果可能的话,使用parseInt,或者甚至push(),如果它实际上是一个你正在尝试创建的数字索引数组,将会解决一些问题. -
@adeno—orderNum 无论如何都会被强制转换为字符串,即使它是一个数字,所以这不是问题。
-
@Damon — 在问题中你有“但
multItems[orderNumber]已定义”但在代码中你有multItems[orderNum],它是什么?
标签: javascript arrays