javascript - 无法完全理解数组的工作原理
问题描述
对不起大家。但我不明白为什么我经常收到 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 ))
解决方案
在您的示例中,我不在循环中,这就是您收到参考错误的原因。您不能仅通过在循环内传输推送方法来修复它
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;
};
推荐阅读
- python - FLASK_WTF 一个新初始化的表单变量怎么会有数据呢?
- mysql - 无法为 MySQL 创建 bugzilla 用户
- java - 为什么我的 AsyncTask 不显示进度对话框?
- javascript - Openlayers:添加纯色图层作为叠加层
- mysql - 基于时间戳和布尔值合并 SQL 表中的两行
- jquery - 如何通过 Apify 下载文件
- xamarin.forms - 使用 JSON 将值传递给意图
- javascript - 根据 AJAX 请求打印 div
- python - 有效地在 pandas DataFrame 列中找到连续条纹?
- java - ListView 在调用 getChildAt 方法时返回 null