Javascript 减少ES6函数中的对象数组

Javascript 减少ES6函数中的对象数组,javascript,Javascript,我对我正在使用的reduce函数有点困惑。如果我声明一个变量并将其设置为一个reduce迭代,我打算减少一个对象数组,这很好: 电影=[ { 标题:《肖申克的救赎》, 费率:“9.3” }, { 标题:“教父”, 比率:“9.2” }, { 标题:《教父:第二部分》, 比率:“9.0” } ] const averageRating=movies.reduce((总和,当前)=>{ 返回(总和+浮动(当前汇率))/3; }, 0); console.log(averageRating)如果将a

我对我正在使用的reduce函数有点困惑。如果我声明一个变量并将其设置为一个reduce迭代,我打算减少一个对象数组,这很好:

电影=[
{
标题:《肖申克的救赎》,
费率:“9.3”
},
{
标题:“教父”,
比率:“9.2”
},
{
标题:《教父:第二部分》,
比率:“9.0”
}
]
const averageRating=movies.reduce((总和,当前)=>{
返回(总和+浮动(当前汇率))/3;
}, 0);

console.log(averageRating)
如果将arrow函数括在花括号中,则需要使用
return
语句

只有省略花括号,表达式的值才会隐式返回


电影=[
{
标题:《肖申克的救赎》,
费率:“9.3”
},
{
标题:“教父”,
比率:“9.2”
},
{
标题:《教父:第二部分》,
比率:“9.0”
}
]
ratesAverage=(数组)=>{
返回数组。减少((总和,电影)=>{
返回和+浮动(电影价格);
}, 0)
}

log(ratesAverage(movies))
因为函数中没有返回任何值

ratesAverage = (array) => {
    return array.reduce((sum, movies) => {
        return sum + parseFloat(movies.rate);
      }, 0)
}
只需将
return
添加到
reduce
方法的结果中即可

您可以删除大括号以执行隐式返回

ratesAverage = (array) => array.reduce((sum, movies) => {
            return sum + parseFloat(movies.rate);
          }, 0)

当您尝试使用
ES6 Arrow函数时,如果您使用的是直接更改,请尽量不要使用return,因为这是使用Arrow函数的优点之一

对于<代码> Reals<代码>,每次迭代,我们需要返回值,因此它将在累加器中更新,否则,它将被认为是未定义的。 查看有关reduce的更多详细信息

您可以使用下面的一行代码

电影=[
{标题:'肖申克的救赎',费率:'9.3'},
{标题:'教父',比率:'9.2'},
{标题:'教父:第二部分',比率:'9.0'}
];
ratesAverage=list=>list.reduce((acc,movie)=>((acc+parseFloat(movie.rate))/3),0);

console.log(ratesAverage(电影))您的外部函数不会返回任何内容。添加一个
return
(或者使用速记,只需省略大括号即可)。