Javascript - 函数总是返回 0(对于循环不执行)
Javascript - function always returns 0 (for loop not executing)
我正在为freeCodeCamp做一个编码练习。该练习的目的是将一个包含 2 个数字的数组作为输入。它应该返回这两个数字的总和以及它们之间的所有数字。
我尝试使用 Math.min()
编写一个简单的 for 循环,并将Math.max()
作为参数,但不知何故,我的函数总是返回 0。基本逻辑是让 for 循环从数组中的最小数字开始,然后递增 1,直到到达数组中的最大数字,并始终将该数字添加到输出变量中。
function sumAll(arr) {
var outcome = 0;
for(var x = Math.min(arr); x<Math.max(arr); x++) {
outcome += x;
}
return outcome;
}
sumAll([1, 4]);
任何帮助,不胜感激。
Math.min
和Math.max
不接受列表作为参数。如果要对它们应用列表,请使用 Math.min.apply(Math, arr)
。
Math.min
和 Math.max
不将数组作为参数,而是将数字列表作为单独的参数。
要使这些方法在数组上工作,请使用以下技巧:
Math.min.apply(Math, [1,2,3]) // --> 1
Math.max
也是如此
你用的是Math.max
,Math.min
错了。要将它们与数组一起使用,您可以使用扩展运算符。(注意:扩展运算符在 ECMAScript 6 中是新的,因此在旧版浏览器中不受支持。见下文:
function sumAll(arr) {
var outcome = 0;
for(var x = Math.min(...arr); x<Math.max(...arr); x++) {
outcome += x;
}
return outcome;
}
sumAll([1, 4]);
有关更多详细信息,请参阅 MDN:
- 数学.max
- 数学分钟分
- 点差运算符
问题是Math.min ()
和Math.max ()
不将数组作为参数。这是一个可以接受的替代方案吗?
function sumAll(min, max) {
var outcome = 0;
for(var x = min; x<max; x++) {
outcome += x;
}
return outcome;
}
sumAll(1,4);
其他一些提供了从数组中获取最低/最高数字的方法。
错误在 Math.min(arr)
中。 Math.min(arr)
评估为NaN
。如果需要从arr
获取最小数字值,请改用Math.min.apply(Math, arr)
。
祝你好运!
试试这个
function sumAll(arr) {
console.log(arr);
var outcome = 0;
for(var x = Math.min(...ar1); x<Math.max(...ar1); x++) {
outcome += x;
}
return outcome;
}
Math.min(...ar1)
偏执中的三个点称为扩散运算符
spread 运算符允许在需要多个参数(用于函数调用(或多个元素(用于数组文本(的位置扩展表达式。
页面链接
function sum(arr) {
var min = arr[0] < arr[1] ? arr[0] : arr[1],
max = arr[0] > arr[1] ? arr[0] : arr[1],
result = 0;
for (var i = min; i <= max; i++) {
result += i;
}
return result;
}
实际上,您的代码永远不会进入 for 循环,因为在 for 循环初始化部分中,您将x
分配数组的最小值,然后一旦 agin,您将数组的 x 与数组的最小值进行比较x<Math.max(arr)
因此条件失败。 则outcome
始终为 0。
- 如何在Javascript中延迟for循环执行
- 在多个(html)元素上循环执行相同的JavaScript函数属性更改
- Javascript ajax循环执行
- Jquery in 循环执行一些记录计算
- 对于大数据,循环执行速度慢
- 计算循环执行的次数
- 为javascript循环执行实现暂停和恢复机制
- 在url上循环执行同样的操作
- done() 究竟是如何工作的,以及如何在 done() 中循环执行
- 如何停止for循环执行,直到for循环内部的DWR方法执行完成
- JavaScript Bookmarklet:无限循环执行一个函数,然后在页面加载时再次执行该函数
- JavaScript.带有innerHTML的循环在循环执行期间不会更新
- 使用jquery循环执行ajax回调
- Javascript /jquery每次迭代后循环执行函数
- 在JavaScript中设置循环执行的延迟
- 循环执行jQuery语句
- 取消jsfiddle中的无限循环执行
- jQuery在ajax成功后继续循环执行
- 按键排序数组或:为什么我的for循环执行无序
- 通过forEach循环执行任务以复制具有数组长度的任务