{"id":11744,"date":"2022-07-21T15:49:17","date_gmt":"2022-07-21T15:49:17","guid":{"rendered":"https:\/\/www.htmlgoodies.com\/?p=11744"},"modified":"2022-07-21T15:49:17","modified_gmt":"2022-07-21T15:49:17","slug":"destructuring-javascript-objects","status":"publish","type":"post","link":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/","title":{"rendered":"Destructuring Mixed Objects and Function Arguments in ES6"},"content":{"rendered":"

\"JavaScript<\/p>\n

Object destructuring is a useful JavaScript (ECMAScript 6) feature to extract properties from objects and bind them to variables. As we saw in the ES6 Object Destructuring<\/a> tutorial, object destructuring can extract multiple properties in one statement, access properties from nested objects, and can set a default value if the property does not exist. In today’s follow-up, we will be taking a look at mixed (Object and Array) destructuring, as well as how to destructure function and method arguments.<\/p>\n

What is Mixed Destructuring in JavaScript?<\/h2>\n

As alluded to in the intro, mixed destructuring involves the declaring and setting of variables from an object that contains attributes of Arrays or from an Array of Objects. To illustrate, here’s a <b>Person Object<\/b> that contains nested elements of both Objects and Arrays:<\/p>\n

const person = {\r\n  name: 'Rob',\r\n  location: {\r\n    city: 'Ottawa',\r\n    country: 'Canada',\r\n    phoneNumbers: ['555-1234', '555-2345'],\r\n  },\r\n};\r\n<\/pre>\n

We can then employ ES6 Destructuring to assign all object properties to individual variables by replicating the object structure:<\/p>\n

const {\r\n  name,\r\n  location: {\r\n    city,\r\n    country,\r\n    phoneNums: [phone1, phone2],\r\n  },\r\n} = person;\r\n\r\n\/\/ Now we can reference each variable without having to use dot (.) attribute accessors.\r\n\/\/ Outputs \"I am Rob from Ottawa, Canada. You can reach me at 555-1234 or 555-2345.\"\r\nconsole.log(\r\n  `I am ${name} from ${city}, ${country}. You can reach me at ${phone1} or ${phone2}.`\r\n);\r\n<\/pre>\n

We can also use ES6 Destructuring to assign Array elements to individual variables, as long as we know the array’s length before-hand. Here is an example that shows how it is done:<\/p>\n

const dataArray = [\r\n  { data: 1 },\r\n  { data: 2 },\r\n  { data: 3 }\r\n];\r\n\r\nconst [\r\n  { data: val0 },\r\n  { data: val1 },\r\n  { data: val2 }\r\n] = dataArray;\r\n\r\n\/\/Outputs \"1, 2, 3\"\r\nconsole.log(`${val0}, ${val1}, ${val2}`);\r\n<\/pre>\n

The trick is to replace the element values with variables in which to store them.<\/p>\n

Read<\/strong>: A guide to Working with CSS Variables<\/a><\/p>\n

Destructuring Object Function Arguments in JavaScript<\/h2>\n

Objects passed to functions can be destructured within the function signature where function arguments are defined. This time, we would replicate the object structure in the arguments list:<\/p>\n

\/\/Programmer Object containing nested elements\r\nconst programmer = {\r\n  name: 'George',\r\n  age: 29,\r\n  skills: {\r\n    languages: 'JavaScript, HTML, CSS',\r\n    databases: 'MySQL, MS SQL, MongoDB',\r\n  },\r\n};\r\n\r\n\/\/The programmer object is destructured within the parameters of the function that is passed in\r\nconst displayEmployeeInfo = ({ name, age, skills: { languages, databases } }) => {\r\n  console.log(\r\n    `The employee name is ${name} and his age is ${age}. \r\n\t\t He knows the following languages - ${languages} \r\n\t\t and is familiar with the databases - ${databases}.`\r\n  );\r\n}\r\n\r\n\/\/Invoke the displayEmployeeInfo() function with the programmer object\r\n\/\/Output: The employee name is George and his age is 29. He knows the following \r\n\/\/languages - JavaScript, HTML, CSS and is familiar with the databases - MySQL, \r\n\/\/MS SQL, MongoDB \r\ndisplayEmployeeInfo(programmer); \r\n<\/pre>\n

Destructured Parameters and Default Values<\/h3>\n

Like any function parameters, we can assign default values to our local variables right in the function signature. Here is the displayEmployeeInfo()<\/strong> function again with default values assigned to the skills, languages and database variables:<\/p>\n

\/\/Programmer Object without skills\r\nconst programmer = {\r\n  name: 'George',\r\n  age: 29,\r\n  skills: {\r\n    languages: 'JavaScript, HTML, CSS'\r\n  }\r\n};\r\n\r\nconst displayEmployeeInfo = ({ name, age, skills: { languages = 'none', databases = 'none' } }) => {\r\n  console.log(\r\n    `The employee name is ${name} and his age is ${age}. \r\n     He knows the following languages - ${languages} \r\n     and is familiar with the databases - ${databases}.`\r\n  );\r\n}\r\n\r\n\/\/Invoke the displayEmployeeInfo() function with the programmer object\r\n\/\/Output: The employee name is George and his age is 29. He knows the following \r\n\/\/languages - JavaScript, HTML, CSS and is familiar with the databases - none\r\ndisplayEmployeeInfo(programmer); \r\n<\/pre>\n

Making Destructured Parameters Optional<\/h3>\n

Note that, even though we have specified default values for some of the variables, if we were to call the displayEmployeeInfo()<\/strong> function with no arguments we would get an error because destructured parameters are always required.<\/p>\n

const displayEmployeeInfo = ({ name, age, skills: { languages = 'none', databases = 'none' } }) => {\r\n  console.log(\r\n    `The employee name is ${name} and his age is ${age}. \r\n     He knows the following languages - ${languages} \r\n     and is familiar with the databases - ${databases}.`\r\n  );\r\n}\r\n\r\n\/\/Invoking the displayEmployeeInfo() function with no arguments\r\n\/\/throws the Error \"TypeError: (destructured parameter) is undefined\"\r\ndisplayEmployeeInfo(); \r\n<\/pre>\n

The key to avoiding the above error is to assign a fallback object literal for all higher-level objects, including the programmer object and the nested skills object.<\/p>\n

const displayEmployeeInfo = ({ name = \"John Doe\", age = \"unknown\", skills: { languages = 'none', databases = 'none' } = {} } = {}) => {\r\n  document.write(\r\n    `The employee name is ${name} and his age is ${age}. \r\n    He knows the following languages - ${languages} \r\n    and is familiar with the databases - ${databases}.`\r\n  );\r\n}\r\n\r\n\/\/Invoking the function displayEmployeeInfo with the programmer object\r\n\/\/Output: The employee name is John Doe and his age is unknown. He knows the following \r\n\/\/languages - none and is familiar with the databases - none\r\ndisplayEmployeeInfo(); \r\n<\/pre>\n

Final Thoughts on Destructuring Mixed Objects and Function Arguments in ES6<\/h2>\n

In this web development tutorial, we explored a couple of the more advanced applications of ES6 destructuring syntax. As powerful as destructuring is on its own, they are capable of streamlining your code even further when combined with other ES6 features such Spread Syntax and Rest Parameters.<\/p>\n

You will find a demo<\/a> of today’s code examples on codepen.io<\/a>. There, you can look over the code and observer the output produced.<\/p>\n

Read<\/strong>: Project Management Tools for Web Developers<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

Object destructuring is a useful JavaScript (ECMAScript 6) feature to extract properties from objects and bind them to variables. As we saw in the ES6 Object Destructuring tutorial, object destructuring can extract multiple properties in one statement, access properties from nested objects, and can set a default value if the property does not exist. In […]<\/p>\n","protected":false},"author":90,"featured_media":11479,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[30620],"tags":[6497,3385,30757],"b2b_audience":[37],"b2b_industry":[65],"b2b_product":[69,70,71,76,131,68,118,81,82,133,83,84,107,86,93,94,67,99,114,115,116,85,522,117,80,128,98,135],"acf":[],"yoast_head":"\nDestructuring Mixed Objects and Function Arguments in ES6<\/title>\n<meta name=\"description\" content=\"Learn more ways to destructure mixed objects in and function arguments using JavaScript, HTML, and ES6 in this JS tutorial.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Destructuring Mixed Objects and Function Arguments in ES6\" \/>\n<meta property=\"og:description\" content=\"Learn more ways to destructure mixed objects in and function arguments using JavaScript, HTML, and ES6 in this JS tutorial.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/\" \/>\n<meta property=\"og:site_name\" content=\"HTML Goodies\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-21T15:49:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2022\/03\/ES6-javascript.png\" \/>\n\t<meta property=\"og:image:width\" content=\"225\" \/>\n\t<meta property=\"og:image:height\" content=\"225\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@htmlgoodies\" \/>\n<meta name=\"twitter:site\" content=\"@htmlgoodies\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rob Gravelle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#organization\",\"name\":\"HTML Goodies\",\"url\":\"https:\/\/www.htmlgoodies.com\/\",\"sameAs\":[\"https:\/\/twitter.com\/htmlgoodies\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/03\/HTMLg_weblogo_MobileLogo.png\",\"contentUrl\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/03\/HTMLg_weblogo_MobileLogo.png\",\"width\":584,\"height\":136,\"caption\":\"HTML Goodies\"},\"image\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#website\",\"url\":\"https:\/\/www.htmlgoodies.com\/\",\"name\":\"HTML Goodies\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.htmlgoodies.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#primaryimage\",\"url\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2022\/03\/ES6-javascript.png\",\"contentUrl\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2022\/03\/ES6-javascript.png\",\"width\":225,\"height\":225,\"caption\":\"JavaScript Examples\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#webpage\",\"url\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/\",\"name\":\"Destructuring Mixed Objects and Function Arguments in ES6\",\"isPartOf\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#primaryimage\"},\"datePublished\":\"2022-07-21T15:49:17+00:00\",\"dateModified\":\"2022-07-21T15:49:17+00:00\",\"description\":\"Learn more ways to destructure mixed objects in and function arguments using JavaScript, HTML, and ES6 in this JS tutorial.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.htmlgoodies.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Destructuring Mixed Objects and Function Arguments in ES6\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/d340101131281902e682ad0190b7ac75\"},\"headline\":\"Destructuring Mixed Objects and Function Arguments in ES6\",\"datePublished\":\"2022-07-21T15:49:17+00:00\",\"dateModified\":\"2022-07-21T15:49:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#webpage\"},\"wordCount\":446,\"publisher\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2022\/03\/ES6-javascript.png\",\"keywords\":[\"arrays\",\"JavaScript\",\"objects\"],\"articleSection\":[\"Javascript\"],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/d340101131281902e682ad0190b7ac75\",\"name\":\"Rob Gravelle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/05\/rob-gravelle-150x150.jpg\",\"contentUrl\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/05\/rob-gravelle-150x150.jpg\",\"caption\":\"Rob Gravelle\"},\"description\":\"Rob Gravelle resides in Ottawa, Canada, and has been an IT guru for over 20 years. In that time, Rob has built systems for intelligence-related organizations such as Canada Border Services and various commercial businesses. In his spare time, Rob has become an accomplished music artist with several CDs and digital releases to his credit.\",\"url\":\"https:\/\/www.htmlgoodies.com\/author\/rob-gravelle\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Destructuring Mixed Objects and Function Arguments in ES6","description":"Learn more ways to destructure mixed objects in and function arguments using JavaScript, HTML, and ES6 in this JS tutorial.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/","og_locale":"en_US","og_type":"article","og_title":"Destructuring Mixed Objects and Function Arguments in ES6","og_description":"Learn more ways to destructure mixed objects in and function arguments using JavaScript, HTML, and ES6 in this JS tutorial.","og_url":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/","og_site_name":"HTML Goodies","article_published_time":"2022-07-21T15:49:17+00:00","og_image":[{"width":225,"height":225,"url":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2022\/03\/ES6-javascript.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@htmlgoodies","twitter_site":"@htmlgoodies","twitter_misc":{"Written by":"Rob Gravelle","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.htmlgoodies.com\/#organization","name":"HTML Goodies","url":"https:\/\/www.htmlgoodies.com\/","sameAs":["https:\/\/twitter.com\/htmlgoodies"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/03\/HTMLg_weblogo_MobileLogo.png","contentUrl":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/03\/HTMLg_weblogo_MobileLogo.png","width":584,"height":136,"caption":"HTML Goodies"},"image":{"@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/www.htmlgoodies.com\/#website","url":"https:\/\/www.htmlgoodies.com\/","name":"HTML Goodies","description":"","publisher":{"@id":"https:\/\/www.htmlgoodies.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.htmlgoodies.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#primaryimage","url":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2022\/03\/ES6-javascript.png","contentUrl":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2022\/03\/ES6-javascript.png","width":225,"height":225,"caption":"JavaScript Examples"},{"@type":"WebPage","@id":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#webpage","url":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/","name":"Destructuring Mixed Objects and Function Arguments in ES6","isPartOf":{"@id":"https:\/\/www.htmlgoodies.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#primaryimage"},"datePublished":"2022-07-21T15:49:17+00:00","dateModified":"2022-07-21T15:49:17+00:00","description":"Learn more ways to destructure mixed objects in and function arguments using JavaScript, HTML, and ES6 in this JS tutorial.","breadcrumb":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.htmlgoodies.com\/"},{"@type":"ListItem","position":2,"name":"Destructuring Mixed Objects and Function Arguments in ES6"}]},{"@type":"Article","@id":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#article","isPartOf":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#webpage"},"author":{"@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/d340101131281902e682ad0190b7ac75"},"headline":"Destructuring Mixed Objects and Function Arguments in ES6","datePublished":"2022-07-21T15:49:17+00:00","dateModified":"2022-07-21T15:49:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#webpage"},"wordCount":446,"publisher":{"@id":"https:\/\/www.htmlgoodies.com\/#organization"},"image":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/destructuring-javascript-objects\/#primaryimage"},"thumbnailUrl":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2022\/03\/ES6-javascript.png","keywords":["arrays","JavaScript","objects"],"articleSection":["Javascript"],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/d340101131281902e682ad0190b7ac75","name":"Rob Gravelle","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/image\/","url":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/05\/rob-gravelle-150x150.jpg","contentUrl":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/05\/rob-gravelle-150x150.jpg","caption":"Rob Gravelle"},"description":"Rob Gravelle resides in Ottawa, Canada, and has been an IT guru for over 20 years. In that time, Rob has built systems for intelligence-related organizations such as Canada Border Services and various commercial businesses. In his spare time, Rob has become an accomplished music artist with several CDs and digital releases to his credit.","url":"https:\/\/www.htmlgoodies.com\/author\/rob-gravelle\/"}]}},"_links":{"self":[{"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/posts\/11744"}],"collection":[{"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/users\/90"}],"replies":[{"embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/comments?post=11744"}],"version-history":[{"count":0,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/posts\/11744\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/media\/11479"}],"wp:attachment":[{"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/media?parent=11744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/categories?post=11744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/tags?post=11744"},{"taxonomy":"b2b_audience","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/b2b_audience?post=11744"},{"taxonomy":"b2b_industry","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/b2b_industry?post=11744"},{"taxonomy":"b2b_product","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/b2b_product?post=11744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}