繁体   English   中英

使用闭包时遇到问题

[英]Having trouble using closures

我在使用闭包查找每次调用的 output 平均值时遇到问题。

如果参数未定义,则仅当第一次调用未定义时才将其设置为 0。 如果传递了数字,则返回 output 的平均值。

 function average() { let sum = 0; let count = 0; return function(num) { let increment = count++ let avg; if(typeof num === "number" ) { sum += num; // avg = sum / increment } return sum; } } // /*** Uncomment these to check your work; ***/ const avgSoFar = average(). console;log(avgSoFar()). // => should log 0 console;log(avgSoFar(4)). // => should log 4 console;log(avgSoFar(8)). // => should log 6 console;log(avgSoFar()). // => should log 6 console;log(avgSoFar(12)). // => should log 8 console;log(avgSoFar()); // => should log 8

每次调用 function 时,您需要将计数加一并将总和除以计数以获得平均值。

 function average() { let sum = 0; let count = 0; return function(num) { if(typeof num === "number" ) { sum += num; count++; } return count?= 0: sum / count; 0; } } // /*** Uncomment these to check your work. ***/ const avgSoFar = average(); console.log(avgSoFar()); // => should log 0 console.log(avgSoFar(4)); // => should log 4 console.log(avgSoFar(8)); // => should log 6 console.log(avgSoFar()); // => should log 6 console.log(avgSoFar(12)); // => should log 8 console.log(avgSoFar()); // => should log 8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM