Javascript 从最后一行google apps脚本再次递增ID

Javascript 从最后一行google apps脚本再次递增ID,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,上周我在这里问了一些问题 一切都很顺利,但当我使用WP1-1000作为起始行时,结果仍然显示为WP1-0NaN var riskid = mysheet.getRange(rlast,2).getValue(); if (riskid.length > 3){ // Extract number ex. 3 var riskidnb = parseInt(riskid.substring(1,riskid.length)); // Increase risk n

上周我在这里问了一些问题

一切都很顺利,但当我使用WP1-1000作为起始行时,结果仍然显示为WP1-0NaN

var riskid = mysheet.getRange(rlast,2).getValue();
  if (riskid.length > 3){
    // Extract number ex. 3
    var riskidnb = parseInt(riskid.substring(1,riskid.length));
    // Increase risk number +1
    riskidnb++
    // Convert to string "0004"
    var s = "000" + riskidnb.toString();
    // Write risk nb i.e. "R004"
    mysheet.getRange(r,2).setValue("WP1-"+ s.substring(s.length-4))
  }
我尝试更改/增加/减少代码中的riskid.lengthvar ss.length-4,但仍然无效。结果仍然显示为“WP1-0NaN”

从我的问题来看,字符串已经被转换为整数,但当我将其更改为WP1时,它仍然显示为NaN

另外,我上一个问题中的代码似乎只有在解决方案中只有一个类似的字母时才有效

我几乎什么都试了两个小时,现在都发疯了。

解释/问题:
  • 这是因为在您前面的问题中,
    id
    具有以下结构 属于
    R-002
    ,但现在您在
    -
    之前使用了
    3个
    字母:
    
    WP1-1000
    。您现在可以使用
    4
    而不是
    1
    ,它将起作用:

    parseInt(riskid.substring(4,riskid.length))

  • 但是,一种更通用的方法是在
    -
    之后加上子字符串,因此您可以使用
    indexOf
    查找该位置:

    parseInt(riskid.substring(riskid.indexOf('-')+1,riskid.length))

  • 您可以对最后一行应用相同的逻辑。不必硬拷贝
    WP1-
    ,您只需在前面获取文本并包括
    -

    riskid.substring(0,riskid.indexOf('-')+1);
    
解决方案: 解释/问题:
  • 这是因为在您前面的问题中,
    id
    具有以下结构 属于
    R-002
    ,但现在您在
    -
    之前使用了
    3个
    字母:
    
    WP1-1000
    。您现在可以使用
    4
    而不是
    1
    ,它将起作用:

    parseInt(riskid.substring(4,riskid.length))

  • 但是,一种更通用的方法是在
    -
    之后加上子字符串,因此您可以使用
    indexOf
    查找该位置:

    parseInt(riskid.substring(riskid.indexOf('-')+1,riskid.length))

  • 您可以对最后一行应用相同的逻辑。不必硬拷贝
    WP1-
    ,您只需在前面获取文本并包括
    -

    riskid.substring(0,riskid.indexOf('-')+1);
    
解决方案:
你好,马里奥斯,谢谢,成功了。同样感谢您的回答,我已经学习javascript/google应用程序脚本两周了,所以仍然是一个很好的新手。小心点,再见,马里奥斯,谢谢,成功了。同样感谢您的回答,我已经学习javascript/google应用程序脚本两周了,所以仍然是一个很好的新手。当心