如何在 map 方法中使用 reduce 方法来添加数字
How to use reduce method within map method to add numbers
不确定我是否将事情过于复杂化,但我正在尝试获取此数组数组中所有数字的总和:
const frames = [
[2, 0], [4, 2], [6, 0], [2, 4], [1, 5], [7, 0], [5, 2], [7, 0], [2, 6], [8, 1]
]
我正在练习使用 map
和 reduce
这样做:
const score = (frames) =>{
console.log(frames)
let addedScores = frames.map(frame.reduce((previousValue, currentValue) => previousValue + currentValue))
console.log(addedScores)
}
但目前出现此错误:
TypeError: 2,04,26,02,41,57,05,27,02,68,1 is not a function
at Array.map (<anonymous>)
at score (/Users/x/Desktop/Programming/devacademy/bootcamp/week1/preparation/bowling-kata/game.js:8:28)
at Object.<anonymous> (/Users/x/Desktop/Programming/devacademy/bootcamp/week1/preparation/bowling-kata/game.js:17:1)
任何建议和解释将不胜感激
你快完成了!如果您查看所面临错误的堆栈跟踪,您将看到 Array.map
函数抛出错误,即“东西”(即 2,04,26,02,41,57,05,27,02,68,1
)“不是函数” .
map
higher-order 函数需要一个函数,它将映射到 frames
.
的元素
你想要的是这样的:
//...
let addedScores = frames.map((frame) => frame.reduce((previousValue, currentValue) => previousValue + currentValue))
//...
这里我只转换了你的 addedScores
表达式来传递一个匿名函数:(frame) => { ... }
到 map
函数。
希望对您有所帮助!
addedScores
的结果形状为:[2, 6, 6, 6, 6, 7, ...]
,这是 frames
.
中每对数字的总和
不确定我是否将事情过于复杂化,但我正在尝试获取此数组数组中所有数字的总和:
const frames = [
[2, 0], [4, 2], [6, 0], [2, 4], [1, 5], [7, 0], [5, 2], [7, 0], [2, 6], [8, 1]
]
我正在练习使用 map
和 reduce
这样做:
const score = (frames) =>{
console.log(frames)
let addedScores = frames.map(frame.reduce((previousValue, currentValue) => previousValue + currentValue))
console.log(addedScores)
}
但目前出现此错误:
TypeError: 2,04,26,02,41,57,05,27,02,68,1 is not a function
at Array.map (<anonymous>)
at score (/Users/x/Desktop/Programming/devacademy/bootcamp/week1/preparation/bowling-kata/game.js:8:28)
at Object.<anonymous> (/Users/x/Desktop/Programming/devacademy/bootcamp/week1/preparation/bowling-kata/game.js:17:1)
任何建议和解释将不胜感激
你快完成了!如果您查看所面临错误的堆栈跟踪,您将看到 Array.map
函数抛出错误,即“东西”(即 2,04,26,02,41,57,05,27,02,68,1
)“不是函数” .
map
higher-order 函数需要一个函数,它将映射到 frames
.
你想要的是这样的:
//...
let addedScores = frames.map((frame) => frame.reduce((previousValue, currentValue) => previousValue + currentValue))
//...
这里我只转换了你的 addedScores
表达式来传递一个匿名函数:(frame) => { ... }
到 map
函数。
希望对您有所帮助!
addedScores
的结果形状为:[2, 6, 6, 6, 6, 7, ...]
,这是 frames
.