{"id":229867,"date":"2022-11-26T13:19:00","date_gmt":"2022-11-26T10:19:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=229867"},"modified":"2022-11-09T16:44:44","modified_gmt":"2022-11-09T13:44:44","slug":"dubleerivate-ueksuste-eemaldamine-javascriptiga","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/dubleerivate-ueksuste-eemaldamine-javascriptiga\/","title":{"rendered":"Dubleerivate \u00fcksuste eemaldamine JavaScriptiga"},"content":{"rendered":"\n<p>Kuna ES6 muutub veebiarenduses \u00fcha populaarsemaks, n\u00e4eme ja kirjutame t\u00f5en\u00e4oliselt v\u00e4hem koodi, kasutades teisi teeke. Kui r\u00e4\u00e4kida WordPressist, siis jQuery on endiselt v\u00e4ga levinud.<\/p>\n<p>Isiklikult arvan, et <strong><a href=\"https:\/\/jquery.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">jQuery<\/a><\/strong> kasutamisel pole midagi valesti (kuigi <strong><a href=\"http:\/\/youmightnotneedjquery.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">te ei pruugi seda vajada<\/a><\/strong> ), kuid arvan ka, et on oluline hoida oma oskused teravad ja uuemate tehnoloogiatega kursis.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164265-61e762088909c.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164265-61e762088909c.png\" alt=\"Dubleerivate \u00fcksuste eemaldamine JavaScriptiga\" ><\/a><\/p>\n<p>Kuid ES6 koodi kirjutamise \u00f5ppimine pole selle postituse eesm\u00e4rk ega ka see, kuidas ES6 abil midagi saavutada.<\/p>\n<p>Selle asemel on see ikkagi WordPressi ja jQuery kohta. ES6 juurde tulen tagasi postituse l\u00f5pus. \u00dcks asi, mida tahaksin hea meelega k\u00e4sitleda, on see, kuidas eemaldada \u00fchise varaga loendist dubleerivad \u00fcksused.<\/p>\n<h2>Dubleerivate \u00fcksuste eemaldamine (jQuery kaudu)<\/h2>\n<p>T\u00e4psemalt oletame, et teil on \u00fcksuste loend \u2013 v\u00f5ib-olla on see j\u00e4rjestatud loend, j\u00e4rjestatud loend v\u00f5i isegi lihtsalt konteiner lastekomplektiga \u2013 ja igal lapsel on atribuutide komplekt.<\/p>\n<p>Need atribuudid v\u00f5ivad olla klassiatribuudid, kohandatud andmete atribuudid v\u00f5i midagi sellist. N\u00e4iteks oletame, et meil on j\u00e4rjestamata loend ja igal alam\u00fcksusel on atribuut <strong>data-id .<\/strong><\/p>\n<p>Lisaks oletame, et \u00fcksuste loend koostatakse mis tahes antud API vastusest, mille andmetes on duplikaadid. Muidugi peaks sellega hakkama saama serveripool, kuid kui seda ei tehta, saab seda siiski teha kliendi poolel.<\/p>\n<p><strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/c61553ce8e662776a4d1fb7e538de55f#file-00-removing-duplicate-children-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Siin on kood<\/a><\/strong> selle tegemiseks koos selle all oleva kommentaariga:<\/p>\n<pre><code>\/**\n * Removes duplicates from the specified array of items; however, this function\n * assumes that $items is an unordered list of items with child elements.\n *\n * @param  $items An unordered list of products with duplicaten children.\n * @return $items An unordered list of products no duplicate children.\n *\n * @private\n *\/\nvar _removeDuplicates = function($items) {\n\n  var unique = {},\n      dataItemId = -1;\n\n  $items\n    .children()\n    .each(function() {\n      dataItemId = $(this).attr('data-id');\n      if (unique[dataItemId]) {\n        $(this).remove();\n      } else {\n        unique[dataItemId] = true;\n      }\n    });\n\n  return $item;\n};<\/code><\/pre>\n<p>Pange t\u00e4hele j\u00e4rgmist.<\/p>\n<ul>\n<li>funktsioon aktsepteerib jQuery m\u00e4hitud lastega \u00fcksuste loendit,<\/li>\n<li>dubleerivate \u00fcksuste olemasolu kindlakstegemiseks kasutatava data-id elemendi alam\u00fcksused<strong>,<\/strong><\/li>\n<li>seadistame massiivi, et teha kindlaks, kas oleme seda \u00fcksust varem n\u00e4inud,<\/li>\n<li>kui ei, lisame selle loendisse; muidu eemaldame selle,<\/li>\n<li>l\u00f5puks tagastame muudetud ja uuendatud loendi.<\/li>\n<\/ul>\n<p>Ja see on peaaegu rida-realt, mida kood teeb.<\/p>\n<p>Isiklikult p\u00fc\u00fcan ts\u00fckli kontekstis (v\u00f5i isegi v\u00e4ljaspool ts\u00fcklit) <strong>if\/else -lauseid mitte kasutada, kuid m\u00f5nikord pole see halb tava, ja see on \u00fcks neist.<\/strong><\/p>\n<h2>Mis see ES6 kohta oli?<\/h2>\n<p>Varem mainisin, et ES6 on t\u00f5usuteel ja see on midagi, mida me arendajatena peaksime \u00f5ppima. Kui ma seda j\u00e4tkan, vaatan v\u00f5ib-olla selle postituse uuesti \u00fcle ja jagan, kuidas saavutada sama funktsionaalsus ES6-ga, mitte jQueryga, et n\u00e4idata, kuidas seda teha.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164265-61e7620d6d683.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-164265-61e7620d6d683.png\" alt=\"Dubleerivate \u00fcksuste eemaldamine JavaScriptiga\" ><\/a><\/p>\n<p>Sellest hoolimata, kui kasutate WordPressi ja olete kasutanud jQueryt juba aastaid, mil seda on kasutatud, soovitan teil tungivalt raamatukogust v\u00e4lja astuda ja \u00f5ppida keele uusimaid funktsioone.<\/p>\n<p>Mina isiklikult \u00f5pin tegutsedes ja kuigi mul oli algne kalduvus jQuery vaikeseadet kasutada, otsustasin kasutada ES6-ga projekti, mille kallal <strong><a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">me<\/a><\/strong> <strong><a href=\"https:\/\/twitter.com\/tobyschrapel\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">meeskonnakaaslase<\/a><\/strong> \u00f5hutusel praegu t\u00f6\u00f6tame .<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kuidas eemaldada JavaScripti dubleerivaid \u00fcksusi jQuery abil (koos m\u00e4rkusega ES6 kohta).<\/p>\n","protected":false},"author":1,"featured_media":164266,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,729,842],"tags":[1165],"class_list":["post-229867","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-javascript-4","category-opetused","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=229867"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/229867\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/164266"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=229867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=229867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=229867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}