获取列表中的最高数字或下一个可用数字

Get the highest number or the next available number in a list

我在分配下一个发票行值时遇到问题。

我已经写了一段 javascript 来获取下一个值,但不知何故它缺少下一个可用值并且仍然选择最高值。

我需要的是最高或下一个可用的数字,LineNo我需要的是最高或下一个。

代码

onGridBeforeEditLines: function (e) {//grid 2
    var event123 = e;
    var lineNo = 0;
    var grid = $("#gridLines").data("kendoGrid");
    $(grid.dataSource.data()).each(function (i, v) {
        if (v != null) {
            if (v.LineNo >= lineNo)
                lineNo = v.LineNo; //Getting the highest value    
        }
    });
    lineNo++;
    grid = $("#gridContracts").data("kendoGrid");
    if (e.model.PaymentPeriodID == 0) {           
        var selectedItem = grid.dataItem(grid.select());
        e.model.PaymentPeriodID = selectedItem.ID;
        e.model.LineNo = lineNo; //setting the value to the grid
    }        
},

图片

获取最高数字并将其加 1 似乎效果很好。最高的是 3,所以 4 是下一个可用的行号。

查找下一个可用号码时似乎不起作用。我已经删除了第 2 行,所以 2 应该是下一个可用选项,但它仍然是最高的并向它添加 1。

提前感谢您的帮助。

if (v.LineNo > lineNo+1) { // then we skipped a space
  // next open value is lineNo+1
  lineNo = lineNo+1;
  return false; // break loop
} else if (v.LineNo == lineNo+1) {
  lineNo = v.LineNo; //Getting the next sequential value , keep looping
} else {
  // lineNo should stay the same
}