gpt4 book ai didi

javascript - 为什么在 for 循环条件中添加删除索引会导致嵌套 if 语句出错?

转载 作者:行者123 更新时间:2023-12-02 23:14:30 24 4
gpt4 key购买 nike

我正在尝试循环遍历 Google 表格应用脚本中设置为 outputArray 的数组。

outputArray = [[Output 1], [Output 2], ... [Output 100]]

我在这个 for 循环中嵌套了一个 if 语句,这样如果该值包含某个字符串,则将触发另一个 for 循环。

基本上就是这样,for 循环到 if 语句再到 for 循环(当 if 语句为 true 时)。

if 语句返回类型错误:无法调用未定义的方法“match”。我不确定为什么会发生这种情况。

我错误地将第一个 for 循环条件设置为索引 [0],这将返回 1,因此 for 循环只会运行一次。但是,使用此索引 [0] 将修复该函数,并且它将运行一次,并且不会在 if 语句中产生错误,如上所述。

for (var i = 0; i < outputArray.length; i++) {                  

if (outputArray[0][i].match("Output")!=null) {

for (var k = 0; k < getParamValue[0].length; k++) {
var param = getParamValue[0][k];
var paramInLoop = "[[" + String(k + 1) + "]]";
repTemplate = repTemplate.replace(paramInLoop,param);
}
}

最佳答案

问题:

  • Index[0] 指的是外部数组中的第一个元素(即第一个内部数组)。索引 [0][i] 迭代第一个内部数组。但第一个内部数组仅包含一个元素。第一个内部数组中的第二个元素是 undefined 并且 undefined 没有 match 方法,因此无法调用它。

解决方案:

  • 先迭代外部数组,然后迭代内部数组:[i][0]

片段:

for (var i = 0; i < outputArray.length; i++) {                  
if (outputArray[i][0].match("Output")!=null) {

var outputArray = [['Output 1'], ['Output 2'], ['Output 3']];
for (var i = 0; i < outputArray.length; i++) {
console.info('outputArray[0]['+i+'] is'+ outputArray[0][i]);
console.info('outputArray['+i+'][0] is'+ outputArray[i][0]);
}

关于javascript - 为什么在 for 循环条件中添加删除索引会导致嵌套 if 语句出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57212556/

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