【发布时间】:2018-04-06 15:25:23
【问题描述】:
我只是想知道为什么当我试图返回一个对象时,当我立即为其分配一些值时,结果与我预期的不同,并且 lamda 函数没有返回一个对象而是返回值。
为了澄清我的问题,这里是代码:
1) 错误的变体(但我想使用类似的东西,因为它有点短)
const a = {
"a" : "a",
"b" : "b",
"c" : "c"
}
const res = Object.keys(a).reduce((res, key) => ( res[key] = 0 ), {});
console.log(res) // result -> 0; but why, does it return an assigning value in that case?
2 个变体(正确但有点长)
const a = {
"a" : "a",
"b" : "b",
"c" : "c"
}
const res = Object.keys(a).reduce((res, key) => { res[key] = 0; return res; }, {});
console.log(res); // { "a" : 0, "b" : 0, "c" : 0 }. It works properly now!
有人可以帮我理解这一刻吗?我相信这是一个有点愚蠢的问题,但无论如何我都会非常感谢您提供任何信息。谢谢!
【问题讨论】:
-
一个常见的成语是返回
Object.assign,见stackoverflow.com/questions/42974735/create-object-from-array
标签: javascript lambda expression arrow-functions