首页 > 解决方案 > 无法完全理解数组的工作原理

问题描述

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

例如

    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 ))

标签: javascriptarraysstringnull

解决方案


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

   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;
    };

推荐阅读