NetSuite订单项删除内部循环问题

时间:2016-04-11 14:37:11

标签: javascript restlet netsuite

My Restlet似乎在删除循环中的订单项时遇到问题。如果似乎有一条记录总是被跳过。因此,如果三个订单项的ID为111,则只删除两个。这段代码可能有什么问题:

var itemcount = update_record.getLineItemCount('item');

for (var j = 1; j <= itemcount; j++)
{
    var lineid = update_record.getLineItemValue('item', 'custcol_line_id', j);

    if (lineid == 111)
    {
        update_record.removeLineItem('item', j);
    }
}

2 个答案:

答案 0 :(得分:4)

这类事总是会失败。向后运行你的循环:

for(var j = itemCount; i> 0; i--){

否则,如果你删除第1行然后推进你的索引你正在检查的下一行(索引2)原来是第3行,你完全跳过了第2行。

答案 1 :(得分:1)

使用原始代码,每次删除行时,我们都会在行级别搞乱索引。因此,我们必须从最后一个索引(总行数)开始,转到第一个索引,即1.请参阅下面的示例代码:

var itemcount = update_record.getLineItemCount('item');

for (var j = itemcount; j >0; j--)
{
    var lineid = update_record.getLineItemValue('item', 'custcol_line_id', j);

    if (lineid == 111)
    {
        update_record.removeLineItem('item', j);
    }
}