Search code examples
javascriptsyntaxecmascript-6variable-assignmentdestructuring

Can the props in a destructuring assignment be transformed in place?


This works…

const { prop1:val1, prop2:val2 ) = req.query
val1 = val1.toLowerCase()

Though, I'm more inclined to do something like

const { prop1.toLowerCase():val1, prop2:val2 } = req.query

or

const { prop1:val1.toLowerCase(), prop2:val2 } = req.query

neither of which work. Is there a syntax similar to this or must manipulations be done outside of the destructing assignment?


Solution

  • No, this is not possible. A destructuring assignment does only assign, it does not do arbitrary transformations on the value. (Setters are an exception, but they would only complicate this).

    I would recommend to write

    const { prop1, prop2:val2 ) = req.query;
    const val1 = prop1.toLowerCase();
    

    or, in one statement:

    const { prop1, prop2:val2 ) = req.query, val1 = prop1.toLowerCase();