Skip to content

How to destructure an object to an already defined variable

I had the need to assign the result of a function call to a variable already defined. The function returned an object:

function test() {
	return {
		one: 1,
		two: 2
	}
}

I thought I’ll just use object destructing, like this:

const { one, two } = test()

But I had two already defined in my code (because of scoping issues) and I couldn’t redeclare it:

let two

//...

const { one, two } = test() //ERROR

Simple way would be to have

const result = test()

two = result.two
const { one } = result

Or, I could also declare one as let and use this syntax with parentheses (adding ; before them to prevent JS to freak out because I don’t use semicolons, any line starting with ( must start with a semicolon, simple rule)

let one, two

;({ one, two } = test())
→ Download my free JavaScript Handbook!

THE VALLEY OF CODE

THE WEB DEVELOPER's MANUAL

You might be interested in those things I do:

  • Learn to code in THE VALLEY OF CODE, your your web development manual
  • Find a ton of Web Development projects to learn modern tech stacks in practice in THE VALLEY OF CODE PRO
  • I wrote 16 books for beginner software developers, DOWNLOAD THEM NOW
  • Every year I organize a hands-on cohort course coding BOOTCAMP to teach you how to build a complex, modern Web Application in practice (next edition February-March-April-May 2024)
  • Learn how to start a solopreneur business on the Internet with SOLO LAB (next edition in 2024)
  • Find me on X

Related posts that talk about js: