Hoppa till huvudinnehåll

22 inlägg taggade med "javascript"

Inlägg om JavaScript

Visa alla taggar

Unika värden i en array

· 2 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Tänk dig den här arrayen med namn:

const names = [
"Filip",
"Anna",
"Jennifer",
"Anna",
"Robert",
"Emma",
"Filip",
"Anna",
]

I arrayen förekommer Filip två gånger och Anna tre gånger. Tänk om vi vill filtrera bort dubbletterna och få en array med bara unika namn?

Ord- och teckenräknare

· 3 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Använd den här räknaren om du vill räkna ord, tecken eller en sekvens av tecken i en text!

Number of words: 0

Number of characters: 0

Operationer i JavaScript med oföränderliga arrayer

· 3 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Som nämnt många gånger förut försöker jag alltid hålla mina variabler oföränderliga när jag utvecklar. Nu ska vi kika närmare på hur vi åstadkommer oföränderliga arrayer i JavaScript när vi lägger till element, byter ut element eller tar bort element. Vi utgår från en array med fåglar:

const birds = ["Talgoxe", "Blåmes", "Tallbit", "Skogsduva"]

Formatera listor med Intl.ListFormat

· 3 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Låt säga att vi har den här arrayen med städer:

const cities = ["Uppsala", "Stockholm", "Lycksele", "Lund"]

Och låt säga att vi vill skriva ut städerna i arrayen i en mening i stil med denna:

Uppsala, Stockholm, Lycksele och Lund är 4 fina städer i Sverige.

Hur?!

Platta ut array och räkna förekomster

· 4 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Jag utvecklade nyligen stöd för att filtrera blogginlägg efter kategorier. (Sedan dess har jag i stället utvecklat stöd för kategori- och författarsidor så att man kan klicka på en kategori och se alla andra inlägg med den kategorin, så den här funktionaliteten används inte längre.) Vid varje kategori i filtreringsvyn fanns även specificerat hur många inlägg som finns med respektive kategori. I det här inlägget ska jag gå igenom vad jag försökte åstadkomma och hur jag löste det.

Vad har jag kopierat?

· 3 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Har du någonsin kopierat något och direkt glömt vad det var?

TL;DR

  • navigator.clipboard.readText() returnerar ett Promise<string> med clipboardens nuvarande text.
  • Funktionen är bara tillgänglig i en säker kontext (HTTPS eller localhost), och läsningen måste ske under en användarinteraktion – därför är den kopplad till ett knappklick i stället för att köras vid sidladdning.
  • Anropet kan kasta fel (nekad behörighet, dokumentet saknar fokus, ingen clipboard tillgänglig …) så det hör alltid hemma i ett try/catch.

Index av största värdet i en array

· 4 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Att hitta indexet av det största värdet i en array är en av de där uppgifterna som verkar trivial men har flera olika lösningar – var och en med sina avvägningar kring läsbarhet, prestanda och fallgropar.

TL;DR

  • En for-loop fungerar, men kräver flera muterbara variabler.
  • En reduce kan lösa det på ett enda varv, men är inte särskilt lättläst.
  • I praktiken är years.indexOf(Math.max(...years)) oftast det bästa valet – lättläst och kompakt, även om datan i praktiken gås igenom tre gånger bakom kulisserna.

Födelsedagsmatematik

· 11 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Har du någonsin undrat hur gammal du är ... i millisekunder? Eller exakt hur många veckor det är mellan två tidpunkter? Lugn, lugn – i det här inlägget kan du få svar på alla dina "Hur många [enhet] är det mellan [tidpunkt] och [tidpunkt]?"-frågor!

TL;DR

  • Millisekunder, sekunder, minuter, timmar, dagar och veckor mellan två tidpunkter är trivialt att räkna ut – det är bara att dela millisekundsdifferensen med rätt konstant.
  • Månader och år är knepigare eftersom deras längd varierar. Tricket är att räkna hela perioder framåt från startdatumet och addera hur långt in i nästa period vi har kommit – samma ankarbaserade modell som Temporal-API:n använder.
  • Vill du bara ha svaret kan du anropa Temporal.Duration.prototype.total direkt i stället för att skriva uträkningarna själv.

Rövarspråksgenerator

· 10 min att läsa
Filip Tammergård
Programmerare på Frilans Finans

Rövarspråket sägs ha uppfunnits av Astrid Lindgrens make Sture Lindgren när han lekte med sina kompisar som liten. Astrid Lindgrens böcker om Kalle Blomkvist gjorde språket populärt i Sverige.

Rövarspråket är ett talbaserat språk där varje konsonant ersätts med konsonanten + o + konsonanten igen. Utifrån den enkla regeln skulle det vara busenkelt att göra en rövarspråksgenerator. När det kommer till rövarspråket i skrift – hädanefter kallat rövarskrift – finns det dock några fler aspekter att beakta. I det här inlägget är det alltså egentligen inte en rövarspråksgenerator som byggs, utan snarare en rövarskriftsgenerator.

TL;DR

  • Den enkla talregeln (konsonant + "o" + konsonant) behöver några tillägg för att fungera i skrift – framförallt hantering av "x" och versaler.
  • Det här inlägget går igenom två strategier för att bygga en generator i JavaScript: att loopa över konsonanterna, och att loopa över texten som ska översättas.
  • En regex med en callback kan korta ner alltihop till två rader, som visas som det slutgiltiga alternativet.