gpt4 book ai didi

javascript - 如何在 JavaScript 中迭代键控数组?

转载 作者:行者123 更新时间:2023-12-02 18:53:05 25 4
gpt4 key购买 nike

我需要将具有匹配订单号的表中的行分组,然后迭代分组。

我有这段代码正在工作,它正在创建完美的数据数组:

    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]已定义...如果我不知道订单号,则无法访问它。

我可以单独制作一个订单号数组,但这感觉一定是很长的路要走。如果我只是创建一个编号数组,我如何知道将订单中的项目弹出到哪个编号?

最佳答案

使用您当前的代码,您拥有

var orderNum = $(this).find('.ordernumber').val();

其中 val() 返回字符串而不是数字。因此,当您执行 multItems[orderNum] 时,它是一个字符串。

要使当前代码正常工作,您需要使用 for in循环。

for (var prop in multItems) {
if( multItems.hasOwnProperty( prop ) ) {
console.log(multItems[prop]);
}
}

仅供引用:不保证订单。另外,您应该在此处使用对象 {} 而不是数组。

<小时/>

现在您可以做的另一件事是使用 parseInt 将字符串更改为数字,然后您的 for 循环就会神奇地开始工作。 [这假设 ordernumber 是一个数值]

var orderNum = parseInt($(this).find('.ordernumber').val(), 10);

关于javascript - 如何在 JavaScript 中迭代键控数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15625298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com