ReactJS数组map遍历报错:';' expected,求问题原因及解决办法
问题分析与解决
你这段代码的语法错误出在箭头函数的返回值处理上:
当箭头函数使用大括号{}包裹内容时,JavaScript会将其识别为函数体,而非直接返回的表达式。你写的value: Math.ceil(...)会被解析成标签语句,后续的isOn: false就会因语法不合法抛出"; expected"错误。
另外原函数还遗漏了return语句,即便语法正确,调用allNewDice()也会得到undefined。
修正方案
方案1:用小括号包裹返回的对象
通过小括号()将对象字面量包裹,明确告诉JS这是要返回的对象,而非函数体:
function allNewDice(){ const newDice = new Array(10).fill(0).map(x => ({ value: Math.ceil(Math.random() * 6), isOn : false })) return newDice; }
方案2:显式添加return语句
如果坚持用大括号作为函数体,需要显式写出return语句返回对象:
function allNewDice(){ const newDice = new Array(10).fill(0).map(x => { return { value: Math.ceil(Math.random() * 6), isOn : false } }) return newDice; }
内容的提问来源于stack exchange,提问作者FloydK
相关产品推荐
相关产品推荐

