【发布时间】:2020-06-24 10:26:01
【问题描述】:
我在一次采访中得到了以下 JavaScript 程序。
const average = xs => {
let sum = 0;
for (let num in xs) sum += num;
return sum / xs.length;
};
const result = average([2, 4, 6]);
console.log(result); // 4
面试官让我解释一下这段代码是如何工作的。我认为平均函数只是将数组中的所有数字相加,然后将总和除以数组的长度。但是,这不是正确的解释。
上面的代码有一个错误。然而,它产生了正确的答案。你能找到错误并修复它吗?另外,你能解释一下为什么上面的代码即使不正确也能产生正确的答案?
【问题讨论】:
-
for (let num in xs) { sum += num; console.log(num,sum); } -
看起来测试是关于 for...in(或 for...of)循环。不喜欢这样的测试。详细掌握所有 JS API 的工作原理是非常非常困难的。不过,谢谢分享。
-
好问题。我花了一段时间才弄明白
标签: javascript ecmascript-6 for-in-loop for-of-loop