【问题标题】:Javascript reduce method for object对象的Javascript减少方法
【发布时间】:2021-10-18 00:35:37
【问题描述】:

现在我正在学习减少 Javascript。在下面的代码中,我不明白 acc[key] 因为我们可以使用 acc["key"]acc.key 访问对象的属性。这就是我学到的。 但显然下面的代码可以正常工作..为什么?

const arr = ['Cat', 'Dog', 'Bird', 'Cat']
const result = arr.reduce((acc, key) => {
    if (key in acc) {
        acc[key]++
    } else {
        acc[key] = 1
    }
    return acc
}, {})

console.log(result)
// { Cat: 2, Dog: 1, Bird: 1 }

【问题讨论】:

  • key是一个字符串变量,所以如果它的值为"Cat"acc[key]相当于写acc["Cat"]acc.Cat
  • 我明白了!非常感谢!!

标签: javascript object reduce


【解决方案1】:

正如@Alexandro 提到的key 是一个字符串,实际上它是数组arr 的一个或多个值,它们的类型是字符串。此外,我们知道要访问对象的值,我们遵循两种方式,square notation(例如arr[key])或dot notation(例如arr.key)。我们更喜欢使用方符号,以防有密钥或包含空格或其他特殊字符。

【讨论】:

  • 非常感谢。我看了几个关于使用 arr[key] 的 reduce 方法的教程。它总是使用 arr[key] 而不是 arr.key 我想知道为什么。你的解释对我的理解很有帮助。谢谢!
  • 不客气,编码愉快 ;)
猜你喜欢
  • 2011-06-04
  • 2017-05-09
  • 1970-01-01
  • 2018-09-01
  • 2020-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多