javascript - 使用 for 循环获取数组中过滤元素的总和
问题描述
我正在自学,我仍然是 javascript 的初学者。通过做一些练习,我遇到了这个问题,它要求我获取数组中为正且小于 1001 的元素的总和。所以我编写了这个函数,但它返回 0,而不是所需的结果。我不知道我做错了什么,我会很感激一些反馈
function sumSmallNumbers(n) {
let smallNumbers = [];
var sum2 = 0;
for (let i = 0; i < n.length; i++) {
if (n[i] > 0 && n[i] < 1001) {
smallNumbers.push(n[i]);
function sumFiltered(smallNumbers) {
for (let j = 0; j < smallNumbers.length; j++) {
let x = smallNumbers[i];
sum2 = sum2 + x;
}
}
}
}
return sum2;
}
解决方案
您正在做的是首先制作一个满足条件的数字数组,然后将它们相加。如果直接计算总和,则只需一个循环即可。
这是它的样子。
function sumSmallNumbers(n){
let sum = 0;
for(let i=0; i<n.length; i++){
if(n[i] > 0 && n[i] < 1001){
sum += n[i];
}
}
return sum;
}
const arr = [1,2,3,66666,234];
let sum = sumSmallNumbers(arr);
console.log(sum)
在您能够理解这一点之后,请查看 JavaScript 的数组方法,例如forEach
,map
和filter
推荐阅读
- ios - Swift iOS - 如果发现错误,请尽早跳出状态
- java - 分页库最初返回空列表
- ios - 在 Swift 中以编程方式从主 TabBarController 转到嵌套的 ViewController
- algorithm - 如何将无向图转换为每个节点最多有 K 个父节点的有向图?
- python - 输入键 Python Tkinter
- html - 如何在同一行对齐文本框?
- spring-boot - Spring Boot actuator - 实现自定义指标
- javascript - 我应该将可选参数默认设置为 false 还是 true
- python-3.x - 使用递归进行洪水填充 - Python
- c# - 如何在不重新编码的情况下更改课程?