【发布时间】:2022-01-24 13:05:38
【问题描述】:
我正在努力实现以下目标:
var arr = [
{name: 'width', value: 10},
{name: 'height', value: 20},
]
arr.reduce((ack, item)=>{
ack.width = item.value
ack.height = item.value
return ack
},{})
//Expected output:
{width: 10, height: 20}
//Actual output:
{width: 20, height: 20}
也许我不明白 .reduce() 如何 100% 工作?
提前感谢您的帮助
【问题讨论】:
-
您的函数会依次用数组中每个项目的值覆盖宽度和。如果你想根据
item.name有条件地做,那么你必须注意item.name! -
这是对
reduce的滥用。我希望人们停止使用reduce,它真的没那么酷:twitter.com/jaffathecake/status/1213077702300852224?lang=en -
@morganney。我正在练习这个练习,因为我在几天前的编码面试中失败了。我同意你和 Twitter 上的帖子,即这种方法比其他专门针对像我这样的 Jr Dev 的方法更难阅读。我也希望人们不要再以这种方式使用
reduce,尤其是在面试时。
标签: javascript arrays javascript-objects