简体   繁体   English

为 const object 的属性赋值是否应该产生 typeError?

[英]Is assigning a value to a property of a const object supposed produce a typeError?

 const sendData = result => { result.centers.forEach(center => { const data = { center_id, name, address, district_name, state_name, pincode, fee_type, sessions } = center; data.sessions = data.sessions.map(session => { return { date, available_capacity, min_age_limit, vaccine } = session; }) console.log(data); }) }

why does the above code produce the following error?为什么上面的代码会产生以下错误?

PS: Please ignore the line numbers. PS:请忽略行号。

UnhandledPromiseRejectionWarning: TypeError: Assignment to constant variable.
    at /home/ubuntu/Projects/Web/CowinTracker/server/app.js:69:17
    at Array.map (<anonymous>)
    at /home/ubuntu/Projects/Web/CowinTracker/server/app.js:67:39
    at Array.forEach (<anonymous>)
    at sendData (/home/ubuntu/Projects/Web/CowinTracker/server/app.js:56:20)

I tried changing const data to let data and same error occurred.我尝试更改const datalet data发生相同的错误。

You can't destructure in your return statement.您不能在 return 语句中进行解构。

You need to either destructure the session argument, or reference the session object and assign the properties to a new object.您需要解构 session 参数,或者引用 session object 并将属性分配给新的 ZA669CFDE63131C459B68

 const data = { centers: [ { center_id: 1, name: 'One', address: '1 one street', district_name: 'one', state_name: 'one', pincode: '1111', fee_type: 1, sessions: [ { date: new Date(), available_capacity: 1, min_age_limit: 1, vaccine: "its gene therapy" } ] } ] } const sendData = result => { result.centers.forEach(center => { const data = { center_id, name, address, district_name, state_name, pincode, fee_type, sessions } = center; data.sessions = data.sessions.map(session => { return { date: session.date, available_capacity: session.available_capacity, min_age_limit: session.min_age_limit, vaccine: session.vaccine }; }) console.log(data); }) } sendData(data)

If you wanted to destructure the session argument you could do something like this.如果你想解构 session 参数,你可以这样做。

data.sessions = data.sessions.map((( 
  date, 
  available_capacity,
  min_age_limit,
  vaccine,
}) => ({
    date,
    available_capacity,
    min_age_limit,
    vaccine,
}) 

}) })

If you're just cloning the object you could do the following.如果您只是克隆 object,您可以执行以下操作。

data.sessions = data.sessions.map(session => ({
  ...session
}))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM