带有空对象的reduce函数不起作用

log*_*han 2 javascript ecmascript-6

我正在尝试从表单元素创建对象。出于某种原因,它正在抛出错误。

let allInputs = [...formData]; 
allInputs.pop(); //Remove submit button
return allInputs.reduce((userObj, data) => userObj[`${data.name}`] = data.value, {});
Run Code Online (Sandbox Code Playgroud)

错误

userModel.js:17 Uncaught TypeError: Cannot create property 'last_name' on string ''
Run Code Online (Sandbox Code Playgroud)

Nen*_*car 5

您需要userObj在每次 reduce 迭代中返回累加器或在您的情况下,因此您的代码应如下所示。

allInputs.reduce((userObj, data) => (userObj[`${data.name}`] = data.value, userObj), {});
Run Code Online (Sandbox Code Playgroud)