<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Alan portfoolio</provider_name><provider_url>https://alanlagunjonok23.thkit.ee/wp</provider_url><author_name>admin</author_name><author_url>https://alanlagunjonok23.thkit.ee/wp/blog/author/admin/</author_url><title>&#xDC;lesanne 8.4 - Alan portfoolio</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="gQkYzc9rib"&gt;&lt;a href="https://alanlagunjonok23.thkit.ee/wp/ulesanne-8-4/"&gt;&#xDC;lesanne 8.4&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://alanlagunjonok23.thkit.ee/wp/ulesanne-8-4/embed/#?secret=gQkYzc9rib" width="600" height="338" title="&#x201C;&#xDC;lesanne 8.4&#x201D; &#x2014; Alan portfoolio" data-secret="gQkYzc9rib" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://alanlagunjonok23.thkit.ee/wp/wp-includes/js/wp-embed.min.js
/* ]]&gt; */
&lt;/script&gt;
</html><description>Ma n&#xE4;itan teile, kuidas ma &#xDC;lesanne 8.4-s funktsioone l&#xF5;in ja selgitan, kuidas need t&#xF6;&#xF6;tavad. Esimene funktsioon calculateDeadlines: See funktsioon kasutab Noolefunktsioone ja .map(). const lastRow = sheet.getLastRow(); const range = sheet.getRange(2, 1, LastRow &#x2013; 1, 2); const data = range.getValues(); 2, 1 &#x2013; vahemiku algus (rida 2, veerg 1) lastRow &#x2013; 1 ridade arv 2 &#x2013; veergude arv const daysToAdd = row[1]; row[0] on kuup&#xE4;evrow[1] on p&#xE4;evade arv Apps Script tagastab m&#xF5;nikord kuup&#xE4;eva stringina; funktsioon kohandab seda vorminguga. Kui andmed on sobimatud, visatakse viga. setDate() saab automaatselt liikuda j&#xE4;rgmise kuu v&#xF5;i aasta juurde. Salvestamine tulemus:sheet.getRange(2, 5, tulemused.length, 1).setValues(tulemused); Enne: P&#xE4;rast: 2. Funktsioon updateSalaries: C &#x2013; rolli nimi D &#x2013; palk Ja suurendab palka, kui roll = &#x201C;Juht&#x201D;. Mis on destruktureerimine? ([roll, palk]) =&gt; { &#x2026; } See vorm v&#xF5;imaldab teil mugavalt rea massiivist v&#xE4;&#xE4;rtusi ekstraheerida ilma kirjutamata:rida[0]rida[1] Suurendage 10% v&#xF5;rra. Enne: P&#xE4;rast: 3. Funktsioon generateOrderNotes: Funktsioon loob tekstim&#xE4;rkme kolmest osast: Klient Hind M&#xE4;rkme loomise aeg Enne: P&#xE4;rast: 4. Funktsioon RowManager: See on n&#xE4;ide klassi kasutamisest. this.rowIndex = rowIndex; } Salvestab:sheet &#x2014; lehe viiderowIndex &#x2014; rea number } 4 &#x2013; veerg D. } Valib 5 veergu A-st E-ni. Loob objekti, mis haldab 5. rida. Enne: P&#xE4;rast 5. Funktsioon appendLog(): Funktsioon lisab tabeli l&#xF5;ppu logi. Kui staatus puudub, on see INFOKui v&#xE4;rv puudub, on see valge appendRow() lisab l&#xF5;ppu uue rea &#x2013; kasulik logimiseks. Kogu rida A&#x2013;E on v&#xE4;rvitud. Enne: P&#xE4;rast: 6. Funktsioon setCalender: Andmed on tabelis suurusega: 8 rida 5 veergu alates lahtrist A1. Selle m&#xE4;&#xE4;ratlesin k&#xE4;sitsi: const rowStart = 1; const colStart = 1; const rows = 8; const cols = 5; See t&#xE4;hendab, et loetav vahemik on A1:E8. getRange(1, 1, 8, 5) t&#xE4;hendab: start &#x2014; rida 1, veerg 1 (A1) v&#xF5;ta 8 rida (1&#x2013;8) v&#xF5;ta 5 veergu (A&#x2013;E) See t&#xE4;hendab, et loetakse lahter A1:E8. getValues() tagastab sisemised andmed, samas kui getDisplayValues() kuvab need kasutajale. Valisin funktsiooni getDisplayValues(), kuna tunniplaan sisaldab tavaliselt: kuup&#xE4;evi (tekstina) kellaaegu (nt &#x201C;08:15&#x201D;) klassi t&#xFC;&#xFC;pi nime &#xF5;petajat K&#xF5;ike seda on lihtsam stringidena kuvada. getDisplayValues() tagastab stringide massiivi: [[&#x201C;01.02.2025&#x201D;, &#x201C;08:00&#x201D;, &#x201C;Loeng&#x201D;, &#x201C;Matemaatika&#x201D;, &#x201C;Mari&#x201D;],[&#x201C;01.02.2025&#x201D;, &#x201C;10:00&#x201D;, &#x201C;Praktikum&#x201D;, &#x201C;F&#xFC;&#xFC;sika&#x201D;, &#x201C;J&#xFC;ri&#x201D;],&#x2026;] Iga sisemine element on tabelist &#xFC;ks rida. Kasutasin andmete destruktureerimist: data.forEach(([kuup&#xE4;ev, kellaaeg, t&#xFC;&#xFC;p, nimi, &#xF5;petaja]) =&gt; { See t&#xE4;hendab: Iga rea &#x200B;&#x200B;kohta, n&#xE4;iteks: [&#x201C;01.02.2025&#x201D;, &#x201C;08:00&#x201D;, &#x201C;Loeng&#x201D;, &#x201C;Matemaatika&#x201D;, &#x201C;Mari&#x201D;] Muutujad saavad j&#xE4;rgmised v&#xE4;&#xE4;rtused: kuup&#xE4;ev &#x2192; &#x201C;01.02.2025&#x201D; aeg &#x2192; &#x201C;08:00&#x201D; t&#xFC;&#xFC;p &#x2192; &#x201C;Loeng&#x201D; nimi &#x2192; &#x201C;Matemaatika&#x201D; &#xF5;petaja &#x2192; &#x201C;Mari&#x201D; Kui kirjutaksin selle ilma destruktureerimiseta, n&#xE4;eks see v&#xE4;lja selline: rida[0], rida[1], rida[2], rida[3], rida[4] Destruktureerimisega on see palju selgem. Tulemus:</description><thumbnail_url>https://alanlagunjonok23.thkit.ee/wp/wp-content/uploads/2025/12/3A16F0A9-220E-4E83-9866-7EB389D4FFA6.png</thumbnail_url><thumbnail_width>641</thumbnail_width><thumbnail_height>405</thumbnail_height></oembed>
