{"id":91729,"date":"2022-10-12T03:55:36","date_gmt":"2022-10-12T08:55:36","guid":{"rendered":"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/"},"modified":"2022-10-12T03:55:36","modified_gmt":"2022-10-12T08:55:36","slug":"hur-man-bygger-datastrukturer-med-javascript-es6-klasser","status":"publish","type":"post","link":"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/","title":{"rendered":"Hur man bygger datastrukturer med JavaScript ES6-klasser"},"content":{"rendered":"<div>\n<p>Datastrukturer \u00e4r en grundl\u00e4ggande aspekt av datavetenskap och programmering, oavsett vilket spr\u00e5k du anv\u00e4nder.  Att ha en grundlig kunskap om dem kan hj\u00e4lpa dig att effektivt organisera, hantera, lagra och \u00e4ndra data.  Att identifiera r\u00e4tt datastruktur f\u00f6r ditt anv\u00e4ndningsfall kan f\u00f6rb\u00e4ttra prestandan med stor marginal.<\/p>\n<p>JavaScript kommer dock bara med primitiva datastrukturer som arrayer och objekt som standard.  Men med introduktionen av ECMAScript 6 (ES6)-klasser kan du nu skapa anpassade datastrukturer som stackar och k\u00f6er med hj\u00e4lp av primitiva datastrukturer.<\/p>\n<h2 id=\"stack-data-structure\"><span class=\"ez-toc-section\" id=\"Stack_datastruktur\"><\/span>  Stack datastruktur<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Stackdatastrukturen till\u00e5ter dig att skjuta ny data ovanp\u00e5 befintlig data p\u00e5 ett LIFO-s\u00e4tt (sist in, f\u00f6rst ut).  Denna linj\u00e4ra datastruktur \u00e4r l\u00e4tt att visualisera med ett enkelt exempel.  T\u00e4nk p\u00e5 en bunt tallrikar som st\u00e5r p\u00e5 ett bord.  Du kan bara l\u00e4gga till eller ta bort en tallrik fr\u00e5n toppen av h\u00f6gen.<\/p>\n<p>S\u00e5 h\u00e4r kan du implementera stackdatastrukturen med JavaScript-matriser och ES6-klasser:<\/p>\n<pre>class Stack {<br\/>constructor() {<br\/>this.data = [];<br\/>this.top = -1;<br\/>}<br\/>}<\/pre>\n<p>L\u00e5t oss utforska och bygga n\u00e5gra av operationerna som du kan utf\u00f6ra p\u00e5 en stack.<\/p>\n<h3 id=\"push-operation\"><span class=\"ez-toc-section\" id=\"Push_Operation\"><\/span>Push Operation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Push-operationen anv\u00e4nds f\u00f6r att infoga ny data i stacken.  Du m\u00e5ste skicka data som en parameter medan du anropar push-metoden.  Innan data infogas \u00f6kas den \u00f6versta pekaren i stacken med en och den nya datan infogas i den \u00f6versta positionen.<\/p>\n<pre>push(data) {<br\/>this.top++;<br\/>this.data[this.top] = data;<br\/>return this.data;<br\/>}<\/pre>\n<h3 id=\"pop-operation\"><span class=\"ez-toc-section\" id=\"Pop_Operation\"><\/span>Pop Operation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Pop-operationen anv\u00e4nds f\u00f6r att ta bort det \u00f6versta dataelementet i stacken.  N\u00e4r du utf\u00f6r denna operation minskas den \u00f6vre pekaren med 1.<\/p>\n<pre>pop() {<br\/>if (this.top &lt; 0) return undefined;<br\/>const poppedTop = this.data[this.top];<br\/>this.top--;<br\/>return poppedTop;<br\/>}<\/pre>\n<h3 id=\"peek-operation\"><span class=\"ez-toc-section\" id=\"Peek_Operation\"><\/span>Peek Operation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Peek-operationen anv\u00e4nds f\u00f6r att returnera v\u00e4rdet som finns \u00f6verst i stacken.  Tidskomplexiteten f\u00f6r att h\u00e4mta dessa data \u00e4r O(1).<\/p>\n<pre>peek() {<br\/>return this.top &gt;= 0 ? this.data[this.top] : undefined;<br\/>}<\/pre>\n<h2 id=\"linked-list-data-structure\"><span class=\"ez-toc-section\" id=\"Lankad_listdatastruktur\"><\/span>  L\u00e4nkad listdatastruktur<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>En l\u00e4nkad lista \u00e4r en linj\u00e4r datastruktur som best\u00e5r av ett flertal noder kopplade till varandra med hj\u00e4lp av pekare.  Varje nod i listan inneh\u00e5ller data och en pekarvariabel som pekar p\u00e5 n\u00e4sta nod i listan.<\/p>\n<p>Till skillnad fr\u00e5n en stack kr\u00e4ver implementeringar av l\u00e4nkade listor i JavaScript tv\u00e5 klasser.  Den f\u00f6rsta klassen \u00e4r <strong>Nod<\/strong> klass f\u00f6r att skapa en nod, och den andra klassen \u00e4r <strong>L\u00e4nkad lista<\/strong> klass f\u00f6r att utf\u00f6ra alla operationer p\u00e5 den l\u00e4nkade listan.  Huvudpekaren pekar p\u00e5 den f\u00f6rsta noden i den l\u00e4nkade listan, och slutpekaren pekar p\u00e5 den sista noden i den l\u00e4nkade listan.<\/p>\n<pre>class Node {<br\/>constructor(data, next = null) {<br\/>this.data = data;<br\/>this.next = next;<br\/>}<br\/>}<br\/>class LinkedList {<br\/>constructor() {<br\/>this.head = null;<br\/>this.tail = null;<br\/>this.size = 0;<br\/>}<br\/>}<\/pre>\n<p>H\u00e4r \u00e4r n\u00e5gra prim\u00e4ra operationer som du kan utf\u00f6ra p\u00e5 en l\u00e4nkad lista:<\/p>\n<h3 id=\"append-operation\"><span class=\"ez-toc-section\" id=\"Lagg_till_Operation\"><\/span>L\u00e4gg till Operation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Append-operationen anv\u00e4nds f\u00f6r att l\u00e4gga till en ny nod i slutet av den l\u00e4nkade listan.  Du m\u00e5ste skicka data som en parameter f\u00f6r att infoga en ny nod.  Skapa f\u00f6rst ett nytt nodobjekt med hj\u00e4lp av <strong>ny<\/strong> nyckelord i JavaScript.<\/p>\n<p>Om den l\u00e4nkade listan \u00e4r tom kommer b\u00e5de huvud- och svanspekaren att peka p\u00e5 den nya noden.  Annars kommer bara svanspekaren att peka p\u00e5 den nya noden.<\/p>\n<pre>append(data) {<br\/>const newNode = new Node(data);<br\/>if (!this.head) {<br\/>this.head = newNode;<br\/>this.tail = newNode;<br\/>} else {<br\/>this.tail.next = newNode;<br\/>this.tail = newNode;<br\/>}<br\/>this.size++;<br\/>return this;<br\/>}<\/pre>\n<h3 id=\"insert-operation\"><span class=\"ez-toc-section\" id=\"Insattningsoperation\"><\/span>Ins\u00e4ttningsoperation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>F\u00f6r att infoga en ny nod vid ett visst index kan du anv\u00e4nda infogningsoperationen.  Den h\u00e4r metoden kr\u00e4ver tv\u00e5 parametrar: data som ska infogas och index vid vilket den ska infogas.  I v\u00e4rsta fall har denna metod en tidskomplexitet p\u00e5 O(N) eftersom den kan beh\u00f6va g\u00e5 igenom hela listan.<\/p>\n<pre>insert(data, index) {<br\/>if (index &lt; 0 || index &gt; this.size) return undefined;<br\/>if (index === 0) {<br\/>this.head = new Node(data, this.head);<br\/>!this.tail ? (this.tail = this.head) : null;<br\/>this.size++;<br\/>return this;<br\/>}<br\/>if (index === this.size) return this.append(data);<br\/>let count = 0;<br\/>let beforeNode = this.head;<br\/>while (count !== index) {<br\/>beforeNode = beforeNode.next;<br\/>count++;<br\/>}<br\/>const newNode = new Node(data);<br\/>let afterNode = beforeNode.next;<br\/>newNode.next = afterNode;<br\/>beforeNode.next = newNode;<br\/>this.size++;<br\/>return this;<br\/>}<\/pre>\n<h3 id=\"delete-operation\"><span class=\"ez-toc-section\" id=\"Ta_bort_operation\"><\/span>Ta bort operation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Raderingsoperationen g\u00e5r igenom den l\u00e4nkade listan f\u00f6r att f\u00e5 referensen till den nod som ska raderas och tar bort l\u00e4nken till den f\u00f6reg\u00e5ende noden.  I likhet med infogningsoperationen har raderingsoperationen ocks\u00e5 en tidskomplexitet p\u00e5 O(N) i v\u00e4rsta fall.<\/p>\n<pre>deleteNode(index) {<br\/>if (index === 0) {<br\/>const removedHead = this.head;<br\/>this.head = this.head.next;<br\/>this.size--;<br\/>this.size === 0 ? (this.tail = null) : null;<br\/>return removedHead;<br\/>}<br\/>if (index === this.size - 1) {<br\/>if (!this.head) return undefined;<br\/>let currentNode = this.head;<br\/>let newTail = currentNode;<br\/>while (currentNode.next) {<br\/>newTail = currentNode;<br\/>currentNode = currentNode.next;<br\/>}<br\/>this.tail = newTail;<br\/>this.tail.next = null;<br\/>this.size--;<br\/>this.size === 0 ? ([this.head, this.tail] = [null, null]) : null;<br\/>return currentNode;<br\/>}<br\/>if (index &lt; 0 || index &gt; this.size - 1) return undefined;<br\/>let count = 0;<br\/>let beforeNode = this.head;<br\/>while (count !== index - 1) {<br\/>beforeNode = beforeNode.next;<br\/>count++;<br\/>}<br\/>const removedNode = beforeNode.next;<br\/>let afterNode = removedNode.next;<br\/>beforeNode.next = afterNode;<br\/>removedNode.next = null;<br\/>this.size--;<br\/>return removedNode;<br\/>}<\/pre>\n<h2 id=\"queue-data-structure\"><span class=\"ez-toc-section\" id=\"Kodatastruktur\"><\/span>  K\u00f6datastruktur<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>K\u00f6datastrukturen liknar ett g\u00e4ng m\u00e4nniskor som st\u00e5r i en k\u00f6.  Den som kommer f\u00f6rst i k\u00f6n serveras f\u00f6re andra.  P\u00e5 liknande s\u00e4tt f\u00f6ljer denna linj\u00e4ra datastruktur FIFO-metoden (f\u00f6rst in, f\u00f6rst ut) f\u00f6r att infoga och ta bort data.  Denna datastruktur kan \u00e5terskapas i JavaScript med hj\u00e4lp av en l\u00e4nkad lista p\u00e5 detta s\u00e4tt:<\/p>\n<pre>class Queue {<br\/>constructor() {<br\/>this.front = null;<br\/>this.rear = null;<br\/>this.size = 0;<br\/>}<br\/>}<\/pre>\n<p>S\u00e5 h\u00e4r kan du infoga och ta bort data fr\u00e5n en k\u00f6 i JavaScript:<\/p>\n<h3 id=\"enqueue-operation\"><span class=\"ez-toc-section\" id=\"Kodrift\"><\/span>K\u00f6drift<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Enqueue-operationen infogar ny data i k\u00f6n.  Medan den h\u00e4r metoden anropas, om k\u00f6datastrukturen \u00e4r tom, pekar b\u00e5de de fr\u00e4mre och bakre pekarna p\u00e5 den nyligen infogade noden i k\u00f6n.  Om k\u00f6n inte \u00e4r tom l\u00e4ggs den nya noden till i slutet av listan och den bakre pekaren pekar p\u00e5 denna nod.<\/p>\n<pre>enqueue(data) {<br\/>const newNode = new Node(data);<br\/>if (!this.front) {<br\/>this.front = newNode;<br\/>this.rear = newNode;<br\/>} else {<br\/>this.rear.next = newNode;<br\/>this.rear = newNode;<br\/>}<br\/>this.size++;<br\/>return this;<br\/>}<\/pre>\n<h3 id=\"dequeue-operation\"><span class=\"ez-toc-section\" id=\"Kodrift-2\"><\/span>K\u00f6drift<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Avk\u00f6ningsoperationen tar bort det f\u00f6rsta elementet i k\u00f6n.  Under avk\u00f6ningsoperationen flyttas huvudpekaren fram\u00e5t till den andra noden i listan.  Denna andra nod blir nu huvudet i k\u00f6n.<\/p>\n<pre>dequeue() {<br\/>if (!this.front) return undefined;<br\/>if (this.front === this.rear) this.rear = null;<br\/>const dequeuedNode = this.front;<br\/>this.front = this.front.next;<br\/>this.size--;<br\/>return dequeuedNode;<br\/>}<\/pre>\n<h2 id=\"the-next-step-after-data-structures\"><span class=\"ez-toc-section\" id=\"Nasta_steg_efter_datastrukturer\"><\/span>  N\u00e4sta steg efter datastrukturer<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Datastrukturer kan vara ett knepigt koncept att f\u00f6rst\u00e5, s\u00e4rskilt om du \u00e4r ny p\u00e5 programmering.  Men precis som alla andra f\u00e4rdigheter kan \u00f6vning hj\u00e4lpa dig att verkligen f\u00f6rst\u00e5 och uppskatta effektiviteten det ger f\u00f6r att lagra och hantera data i dina applikationer.<\/p>\n<p>Algoritmer \u00e4r lika anv\u00e4ndbara som datastrukturer och kan bli n\u00e4sta logiska steg i din programmeringsresa.  S\u00e5 varf\u00f6r inte b\u00f6rja med en sorteringsalgoritm som bubbelsortering?<\/p>\n<p>    <strong class=\"section-sub-title\">Om f\u00f6rfattaren<\/strong><\/p>\n<p>            <strong class=\"bio-title\">Nitin Ranganath (39 artiklar publicerade)<br \/><\/strong><\/p>\n<p>Nitin \u00e4r en ivrig mjukvaruutvecklare och en datoringenj\u00f6rsstudent som utvecklar webbapplikationer med JavaScript-teknik.  Han arbetar som frilansande webbutvecklare och gillar att skriva f\u00f6r Linux och programmering i sin free tid. <\/p>\n<p>                            Mer fr\u00e5n Nitin Ranganath<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Prenumerera_pa_vart_nyhetsbrev\"><\/span>Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>G\u00e5 med i v\u00e5rt nyhetsbrev f\u00f6r tekniska tips, recensioner, free e-b\u00f6cker och exklusiva erbjudanden!<\/p>\n<p>Klicka h\u00e4r f\u00f6r att prenumerera<\/p>\n<\/p><\/div>\n  <div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Stack_datastruktur\" >Stack datastruktur<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Push_Operation\" >Push Operation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Pop_Operation\" >Pop Operation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Peek_Operation\" >Peek Operation<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Lankad_listdatastruktur\" >L\u00e4nkad listdatastruktur<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Lagg_till_Operation\" >L\u00e4gg till Operation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Insattningsoperation\" >Ins\u00e4ttningsoperation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Ta_bort_operation\" >Ta bort operation<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Kodatastruktur\" >K\u00f6datastruktur<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Kodrift\" >K\u00f6drift<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Kodrift-2\" >K\u00f6drift<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Nasta_steg_efter_datastrukturer\" >N\u00e4sta steg efter datastrukturer<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-bygger-datastrukturer-med-javascript-es6-klasser\/#Prenumerera_pa_vart_nyhetsbrev\" >Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n ","protected":false},"excerpt":{"rendered":"<p>Datastrukturer \u00e4r en grundl\u00e4ggande aspekt av datavetenskap och programmering, oavsett vilket spr\u00e5k du anv\u00e4nder. Att ha en grundlig kunskap om dem kan hj\u00e4lpa dig att effektivt organisera, hantera, lagra och \u00e4ndra data. Att identifiera r\u00e4tt datastruktur f\u00f6r ditt anv\u00e4ndningsfall kan f\u00f6rb\u00e4ttra prestandan med stor marginal. JavaScript kommer dock bara med primitiva datastrukturer som arrayer och [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":91730,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[5],"tags":[7572,45328,45329,27,27490,163,102],"class_list":["post-91729","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloggar","tag-bygger","tag-datastrukturer","tag-es6klasser","tag-hur","tag-javascript","tag-man","tag-med"],"_links":{"self":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/91729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/comments?post=91729"}],"version-history":[{"count":0,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/91729\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media\/91730"}],"wp:attachment":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media?parent=91729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/categories?post=91729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/tags?post=91729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}