【问题标题】:Cant fully understand how to works array无法完全理解数组的工作原理
【发布时间】:2021-02-17 18:35:23
【问题描述】:

对不起,伙计们。但我不明白为什么我经常收到 ReferenceError。当您在 console.log 中输入两位数字时,下面的简单数组代码显示了它们之间的数字,如 % 2 。 但是当我尝试添加消除功能时:null,'string'等它显示一个ReferenceError arr.push(i);

例如

    for (let i = min; i <= max; i++){
    if (i % 4 == 0) {
      if (i === null) {
        alert('qwerty');
      }
    }
   }
      arr.push(i);
      return arr;
    };

这是原始代码。它可以工作,但没有过滤器

let first = +prompt('Please enter first number:');
let second = +prompt('Please enter second number ');

function arrRange(min, max) {
  let arr = [];
  
  for (let i = min; i <= max; i++) 
    if (i % 2 == 0) 
   
  arr.push(i);
  return arr;
};

console.log(arrRange(first ,second ))

【问题讨论】:

  • 您的arr.push(i); 在您的for 循环之外,而i 只是for 循环中的一个变量。

标签: javascript arrays string null


【解决方案1】:

那是因为您将i 推到了错误的位置arr。您只是混合了功能范围。

你有一个简单的解决方案:

for (let i = min; i <= max; i++){
    if (i % 4 == 0) {
      if (i === null) {
        alert('qwerty');
      }
        arr.push(i);
    }
    
   }
     
      return arr;
    };

【讨论】:

    【解决方案2】:

    在您的示例中,我不在循环中,这就是您收到参考错误的原因。 你不能仅仅通过在循环中传输你的推送方法来修复它

       for (let i = min; i <= max; i++){
        if (i % 4 == 0) {
          if (i === null) {
            alert('qwerty');
          }
        }
        arr.push(i); 
       }
          // arr.push(i); out of loop and i here doesn't exist 
          return arr;
        };
    

    【讨论】:

      猜你喜欢
      • 2019-07-27
      • 2014-04-08
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-10
      相关资源
      最近更新 更多