JavaScript对象字面量动态键语法错误

6
这个表达式有什么问题?
['a', 'b'].map((x) => {[x]:x})

I'm getting this error:

Uncaught SyntaxError: Unexpected token :
3个回答

7

你需要在()中包裹{},否则它会被解释为函数的主体:

['a', 'b'].map((x) => ({[x]: x }))

这是正确的答案。顺便提一下,为了清晰起见,我经常像这样包装返回的对象: ['a', 'b'].map((x) => Object({[x]: x})) - zfrisch

4
您已经用()将返回值括起来。

let result = ['a', 'b'].map((x) => ({[x]: x}));

console.log(result);


4

每当你从箭头函数中返回对象时,需要将它们用括号包裹起来。

['a', 'b'].map((x) => ({[x]:x}))


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接