【发布时间】:2021-08-24 08:32:57
【问题描述】:
在此示例中,我试图获取从对象 scoreObj 上使用 Object.values(obj)、Array.reduce() 和 Array.length 返回的最大数量的返回数组。
我达到了我想要从中获得最大数字的新数字(对象中每个数组的平均数字)的数组。
正如您在代码 sn-p 中看到的,getObjecVals() 返回对象 scoreObj 中每个数组的平均数。此时,我被困在从新数组中返回最大数。
我希望代码 sn-p 比我的解释更有意义。我也有点困惑,因为当我在getObjecVals() 上使用typeof 运算符时,它会执行undefined,尽管是新的数字数组。
所以我的问题是:-
- 为什么
getObjecVals()的 typeof 返回undefined的同时还记录了一个数字数组? - 如何从
getObjecVals()返回的三个数字中获取最大的数字?let scoresObj = { johnsScore: [89, 120, 103], mikesScores: [116, 94, 123] }; const marys = scoresObj.marysScore = [97, 134, 105]; const getAverage = (arr) => arr.reduce((a, b) => (a + b), 0) / arr.length; const getObjecVals = () => { for (let value of Object.values(scoresObj)) { console.log(getAverage(value)); } } getObjecVals(); // returns 104 111 112
PS:我总是乐于接受获得所需结果的新方法,但我宁愿找到一种方法让我自己的代码来做到这一点。
【问题讨论】:
-
请添加想要的结果。顺便说一句,一个函数需要一个返回语句,如果不是没有块语句的箭头函数。
标签: javascript arrays function object