javascript - 使用循环和语句进行数组排序
问题描述
你好朋友你能修复我的代码,就像现在输入是 12 divide2 ,divide3 和 divide4 从 0 增加到 1。或者当输入是 3,2,9 divide3 得到值 2 和 divide2得到 1...
这是我的代码
function Divider(args) {
let n = Number(args[0]);
let divide2 = 0.0;
let divide3 = 0.0;
let divide4 = 0.0;
for (let i = 1; i < n; i++) {
let currentNum = Number(args[i])
if (currentNum % 2 == 0) {
divide2++;
}
if (currentNum % 3 == 0) {
divide3++;
}
if (currentNum % 4 == 0) {
divide4++;
}
}
console.log(divide2);
console.log(divide3);
console.log(divide4);
}
Divider(['1', '12']);
这个想法是有多少数字被划分为 2 ,3,4 而没有提醒要记录在变量中。我需要这样做。
解决方案
有几件事,
Javascript 提供
arguments
了一种使用传递给函数的参数的方法,该函数在其范围内用作数组在调用函数时传递参数时,您不需要将参数包装在数组中。Javascript 会自动为您执行此操作,并将其作为
arguments
.在 for 循环中,您需要迭代直到 i <= n 而不是 for i < n。如果在索引 1 处只有一个数字传递,则循环不会执行。
对于divide2、divide3 和divide4,您可以使用整数而不是浮点数。
这是修复代码后的解决方案。
function Divider(args) {
let n = Number(arguments[0]);
let divide2 = 0.0;
let divide3 = 0.0;
let divide4 = 0.0;
for (let i = 1; i <= n; i++) {
let currentNum = Number(arguments[i])
if (currentNum % 2 == 0) {
divide2++;
}
if (currentNum % 3 == 0) {
divide3++;
}
if (currentNum % 4 == 0) {
divide4++;
}
}
console.log(divide2);
console.log(divide3);
console.log(divide4);
}
Divider('3','3','2','9') // divide2 = 1.0, divide3 = 2.0, divide4 = 0.0 ;
推荐阅读
- node.js - Windows 节点中 process.env.TZ = 'UTC' 的解决方案?
- google-chrome - 访问网站的辅助功能树
- git - 通过 HTTP 推送到 Heroku
- python - 使用 Python 进行 GCP BigQuery 的 Google OAuth 2.0
- php - php文件上传代码在ubuntu中使用mysql数据库无法正常工作
- python-3.x - 处理 QgsMapCanvas 的 KeyPressEvent
- javascript - create-react-app 生产构建重命名函数
- php - PHP 注意:未定义变量:尝试将数据插入 mysql 数据库时
- oracle - 用另一个表中的值更新一个表
- mysql - 比较两个表与 laravel6 中两个表中都存在的一列