如何解决Javascript:为什么我的indexof会返回找到值的行
我编写此代码的目的是循环浏览名称列表。当代码在列表中找到waitingName时,应将其显示的行替换为信息行。当我尝试运行此代码时,它将信息行粘贴到屏幕顶部,而不是名称列表开始的第17行之后。
var waitingName = waitingSheet.getRange(6,13).getValue();
var edittedInfo = waitingSheet.getRange(6,3,1,12).getValues();
var waitingListNames = waitingSheet.getRange(17,11,105,1).getValues().flat();
var index = waitingListNames.indexOf(waitingName);
if (index > -1) {
waitingSheet.getRange(index + 1,12).setValues(edittedInfo);
}
解决方法
解决方案:
-
index
取值>=0
,因此index+1
取值>=1
。这个 这就是为什么您的代码从第一行开始粘贴的原因。
如果要将信息粘贴到第17 行(包括第17行)之后,请进行以下修改:
waitingSheet.getRange(index + 1,1,12).setValues(edittedInfo);
对此:
waitingSheet.getRange(index + 17,edittedInfo.length,edittedInfo[0].length).setValues(edittedInfo);
因为index
可以取值>=0
,所以index + 17
取值>=17
是所需的起始行点。
此外,如果您想在以后更改.length
的大小,建议改用edittedInfo
。
参考文献:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。