【发布时间】:2017-12-30 19:58:50
【问题描述】:
我在一个超级简单的数据集上使用reduce 函数,结果我没想到会得到NaN:
let students = [{name: 'Leah', grade: 94},{name: 'Savannah', grade: 73},{name: 'Killian', grade: 38}];
let highest = students.reduce(
(high, current) => Math.max(high.grade, current.grade)
)
console.log(highest); // outputs NaN
奇怪的是,如果我将第一行更改为以下内容:(仅取出第三个对象)
let students = [{name: 'Leah', grade: 94},{name: 'Savannah', grade: 73}];
然后它运行正确并输出 94。
为什么添加一个额外的对象会导致问题?
【问题讨论】:
-
使用调试器单步调试您的代码。每次循环时,检查
high和current的值。您应该能够很快找出问题所在。
标签: javascript ecmascript-6 reduce