gpt4 book ai didi

javascript - Array.prototype.reduce 方法回调中的累加器上的 'get' 方法指的是什么?

转载 作者:行者123 更新时间:2023-11-30 19:52:12 25 4
gpt4 key购买 nike

标题可能看起来很冗长,但引用这个问题中发布的这个答案:https://stackoverflow.com/a/37623524/4111415

我想知道 let count = prev.get(curr.key) || 是什么0; 实际上的意思。据我所知,累加器 (prev) 只是一个数字; get 方法实际上在这里做什么?我查看了 MDN 文档但无济于事:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

let objArr = [
{key: 'Mon Sep 23 2013 00:00:00 GMT-0400', val: 42},
{key: 'Mon Sep 24 2013 00:00:00 GMT-0400', val: 78},
{key: 'Mon Sep 25 2013 00:00:00 GMT-0400', val: 23},
{key: 'Mon Sep 23 2013 00:00:00 GMT-0400', val: 54}
];

// first, convert data into a Map with reduce
let counts = objArr.reduce((prev, curr) => {
let count = prev.get(curr.key) || 0;
prev.set(curr.key, curr.val + count);
return prev;
}, new Map());

// then, map your counts object back to an array
let reducedObjArr = [...counts].map(([key, value]) => {
return {key, value}
})

console.log(reducedObjArr);

最佳答案

As far as I am aware the accumulator (prev) is just a number

不,情况并非总是如此。如果在 .reduceinitialValue 参数中指定了值,累加器(在本例中为 prev)将取该初始值的值。

您示例中的初始值是 new Map(),它是一个 map 对象。 Map prototype包括.get方法,用于从 map 对象中获取特定值(类似于对象键值对获取)。

因此,您的 .get 方法引用的是 Map 对象,而不是数字。

关于javascript - Array.prototype.reduce 方法回调中的累加器上的 'get' 方法指的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54364297/

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