const arr = ["a","b","c"]
arr.map(obj => {obj.id: obj})
我希望arr可以成为[{id:"a"},{id:"b"},{id:"c"}]
但是我的地图中的obj.id
出错了,我的错误是什么?
答案 0 :(得分:3)
您可以使用括号作为返回对象,只使用变量id
,该变量解析为具有键id
的对象。
let arr = ["a", "b", "c"],
result = arr.map(id => ({ id }));
console.log(result);

来自MDN Returning object literals:
返回对象文字
请记住,使用简明语法
params => {object:literal}
返回对象文字将无法按预期工作。var func = () => { foo: 1 }; // Calling func() returns undefined! var func = () => { foo: function() {} }; // SyntaxError: function statement requires a name
这是因为braces({})中的代码被解析为一系列语句(即foo被视为标签,而不是对象文字中的键)。
请记住将对象文字包装在括号中。
var func = () => ({foo: 1});
答案 1 :(得分:0)
返回对象时应使用额外的括号。所以你的代码将是
const arr = ["a", "b", "c"]
const a = arr.map((obj, i) => ({
[i]: obj
}))
console.log(a)