【发布时间】:2020-05-06 13:13:45
【问题描述】:
我有一个.map() 函数,它可以更改data 数组中对象的isActive 属性值。但是用大括号将它包裹起来会返回我未定义的,而用括号包裹它或不包裹会返回更新的值。花括号在箭头函数中用作包装器,但它对 .map() 的作用是否不同?
const newData = data.map((data) => {
data.label === label ? { ...data, isActive: !data.isActive } : data,
});
console.log(newData)
//undefined
const newData = data.map((data) =>
data.label === label ? { ...data, isActive: !data.isActive } : data,
);
console.log(newData)
//returns updated newData
【问题讨论】:
-
"但是.map() 的工作方式不同吗?" 不。
.map不知道函数是如何创建的,所以不管你是否使用@ 987654326@ 对函数的解释方式没有影响。 -
花括号用于支持多行任务。如果你的回调函数体有多行代码,那么你必须将它们包裹在花括号中。对于地图,您必须返回一些值。对于单行函数,您不需要使用
return关键字。它会自动返回值。
标签: javascript arrays ecmascript-6