Javascript 对象的 reduce 方法
Javascript reduce method for object
现在我正在学习 Javascript 的 reduce。在下面的代码中,我不明白 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 }
所以正如@Alexandro 提到的 key
是一个字符串,实际上它是数组 arr
的一个或多个值,它们的类型是字符串。此外,我们知道要访问一个对象的值,我们遵循两种方式 方块表示法(例如 arr[key]
)或 点表示法(例如arr.key
)。我们更喜欢使用方块表示法,以防生成或包含 space 或其他特殊字符的键。
现在我正在学习 Javascript 的 reduce。在下面的代码中,我不明白 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 }
所以正如@Alexandro 提到的 key
是一个字符串,实际上它是数组 arr
的一个或多个值,它们的类型是字符串。此外,我们知道要访问一个对象的值,我们遵循两种方式 方块表示法(例如 arr[key]
)或 点表示法(例如arr.key
)。我们更喜欢使用方块表示法,以防生成或包含 space 或其他特殊字符的键。