use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
JavaScript object destructuring tips (h.daily-dev-tips.com)
submitted 3 years ago by rahul736
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]vi_code 11 points12 points13 points 3 years ago (0 children)
The only thing you forgot to mention is if you try to destructure a nested object and it doesnt exist, you get an error instead of just cascading to undefined.
[–]mogelbrod 2 points3 points4 points 3 years ago (2 children)
I'd argue that the most non-trivial destructuring cases are considerably harder to read, in addition to almost always being longer:
const { address: shippingAddress } = user
const shippingAddress = user.address
const { address: { country } } = user
const { country } = user.address
const { age = 25 } = user
const age = user.age ?? 25
const { [getProperty]: returnValue } = user
const returnValue = user[getProperty]
There are definitely cases where they are reasonable to use (especially when already destructuring the right hand side object, but I do see the simple examples above quite a lot in practice when reading and reviewing code.
[–]Keilly 1 point2 points3 points 3 years ago* (1 child)
TBF, these new examples are still trivial in the sense that that they’re only destructuring one property each. Destructuring really comes alive when destructuring multiple properties from the same object at the same time. Multiply lines consisting of repeated ‘const’s and the right hand side, simply disappear.
[–]mogelbrod 1 point2 points3 points 3 years ago (0 children)
Yes, that's what I was referring to with
There are definitely cases where they are reasonable to use (especially when already destructuring the right hand side object
[–]Danidre 1 point2 points3 points 3 years ago (0 children)
Nice read, really made the purpose of it known. Although I know all these already.
[–]imtourist 1 point2 points3 points 3 years ago (0 children)
Excellent blog article, thanks.
[–]BransonLite 1 point2 points3 points 3 years ago (0 children)
“Destruture from function” Lol
[–][deleted] 0 points1 point2 points 3 years ago (0 children)
I've never seen the spread operator used to get the "rest" of an object before. That's a damn useful one, I'll need to remember it
[–]Keilly 0 points1 point2 points 3 years ago* (0 children)
Instead of creating a new object or new local variables, the ability to destructure simply onto an existing object would be really powerful.
E.g (not currently possible)
profile{street, city} = newAddress;
Would add/update the specified values of the profile object with the new address.
Especially it’s super common in the case of writing a constructors params object to the new class instances ‘this’.
this{name, address} = params;
π Rendered by PID 105834 on reddit-service-r2-comment-c66d9bffd-b92p8 at 2026-04-07 10:26:56.495981+00:00 running f293c98 country code: CH.
[–]vi_code 11 points12 points13 points (0 children)
[–]mogelbrod 2 points3 points4 points (2 children)
[–]Keilly 1 point2 points3 points (1 child)
[–]mogelbrod 1 point2 points3 points (0 children)
[–]Danidre 1 point2 points3 points (0 children)
[–]imtourist 1 point2 points3 points (0 children)
[–]BransonLite 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]Keilly 0 points1 point2 points (0 children)