gpt4 book ai didi

javascript - 为什么我的 reduce 累加器会重置?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:52 26 4
gpt4 key购买 nike

如何保留 reduce 函数的累积值?每次迭代都会重置对象值。

const a = [1, 2, 3, 4, 5];

const b = {
1: {
name: 'Dan',
age: 25
},
2: {
name: 'Peter',
age: 28
},
3: {
name: 'Mark',
age: 38
},
4: {
name: 'Larry',
age: 32
},
5: {
name: 'Simon',
age: 25
},
}

const f = a.reduce((acc, val) => {
console.log({
acc
})
return {
[val]: {
age: b[val].age
}
}
}, {})

console.log(f); // 5: {age: 25}

我想要的结果是:

{
1: { age: 25 },
2: { age: 28 },
3: { age: 38 },
4: { age: 32 },
5: { age: 25 },
}

(本例为demo)

最佳答案

使用 object spread 将先前的累加器添加到返回值(像这个例子)或 Object.assign() :

const a = [1, 2, 3, 4, 5];

const b = {"1":{"name":"Dan","age":25},"2":{"name":"Peter","age":28},"3":{"name":"Mark","age":38},"4":{"name":"Larry","age":32},"5":{"name":"Simon","age":25}};

const f = a.reduce((acc, val) => ({
...acc, // previous accumulator
[val]: {
age: b[val].age
}
}), {})

console.log(f); // 5: {age: 25}

关于javascript - 为什么我的 reduce 累加器会重置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50231807/

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