无法完全理解数组的工作原理

Cant fully understand how to works array

对不起,伙计们。但我不明白为什么我经常收到 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 ))

在你的例子中,我不在循环中,这就是你得到引用错误的原因。 你不能仅仅通过在 loop

中转移你的 push 方法来修复它 <pre><code> 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; };

那是因为你把 i 推到了错误的地方 arr。你只是混合了函数的范围。

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

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