gpt4 book ai didi

javascript - 不确定为什么某种递增方式在 Array.reduce() 方法中不起作用

转载 作者:行者123 更新时间:2023-11-28 14:56:43 26 4
gpt4 key购买 nike

假设我遇到这样的问题,我有一个对象数组,我尝试使用 Array.reduce() 将所有不同类型的数字计数到一个新对象中:

var desks = [
{ type: 'sitting' },
{ type: 'standing' },
{ type: 'sitting' },
{ type: 'sitting' },
{ type: 'standing' }
];

var deskTypes = desks.reduce(function(prev, curr) {
if(curr.type === "sitting") {
return {sitting: ++prev.sitting, standing: prev.standing};
}

if(curr.type === "standing") {
return {sitting: prev.sitting, standing: ++prev.standing};
}
}, { sitting: 0, standing: 0 });

上面的示例有效,并且一切都完美地递增。然而,当我切换++时在右侧(我通常将其放置在增加值的位置),该函数返回 NaN .

var deskTypes = desks.reduce(function(prev, curr) {
if(curr.type === "sitting") {
return {sitting: prev.sitting++, standing: prev.standing};
}

if(curr.type === "standing") {
return {sitting: prev.sitting, standing: prev.standing++};
}
}, { sitting: 0, standing: 0 });

老实说,我不知道这里发生了什么。谁能解释一下吗?

最佳答案

这个问题与Array.reduce()无关。您只需要了解如何 pre/post increment operators有效。

Pre 在赋值之前递增。Post 在分配值后递增。

关于javascript - 不确定为什么某种递增方式在 Array.reduce() 方法中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42591943/

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