gpt4 book ai didi

JavaScript 计算属性

转载 作者:行者123 更新时间:2023-12-04 00:38:22 26 4
gpt4 key购买 nike

我正在学习 James Moore 的 JavaScript 初学者函数式编程类(class)。但是,我目前在理解以下代码时遇到困难:

const reviews = [4.5, 4.0, 5.0, 2.0, 1.0, 5.0, 3.0, 4.0, 1.0, 5.0, 4.5, 3.0, 2.5, 2.0];

const countGroupedByReview = reviews.reduce(groupBy, {});

function groupBy (acc, review){
const count = acc[review] || 0;
return {...acc, [review]: count + 1}
}

虽然我理解 reduce 方法的工作方式,但我很难理解 groupBy 函数 block 中的代码。我相信这与计算属性名称有关。如果有任何帮助,我将不胜感激。

谢谢。

最佳答案

它认为代码块中没有任何计算属性名称。此代码块的作用是计算数组中每个评论分数的出现次数。让我们先逐步了解回调及其参数:

回调接受 2 个参数:

  • acc 是累加器,就是reducer会不断压入的数据。它首先被定义为一个空白对象,作为 Array.prototype.reduce
  • 中的第二个参数
  • review 只是数组中当前正在迭代的当前项

现在进入回调本身的代码。 const count = acc[review] || 行0 简单的意思是:

  1. 如果数组项作为键存在于累加器中,则返回其值
  2. 如果数组项不作为键存在于累加器中,则将其值设置为0

之后,您只需将计数加 1,因为您刚刚遇到该项目并且您想要将其添加到总计数中,按数组项目的值分组。 { ...acc, [review]: count + 1 } 只是一个对象传播函数,它只是意味着:保留我为累加器拥有的任何键值对,但合并完成的更改对于特定的键值对。

关于JavaScript 计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61081565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com