Hitta längden på en sträng

JavaScript:
Hitta längden på en sträng

Hur man gör:

let greeting = "Hej världen!";
console.log(greeting.length);  // Output: 12

let emptyString = "";
console.log(emptyString.length); // Output: 0

let emojiString = "🙂🙃";
console.log(emojiString.length); // Output: 4 (emoji tar två tecken vardera)

Djupdykning:

Historiskt sett har .length-egenskapen alltid varit det primära sättet att få reda på hur många tecken en sträng innehåller i JavaScript. Trots att detta koncept är rakt på sak, finner man intressanta implementationer när det kommer till unicode-tecken, som emojis, där varje “tecken” faktiskt kan bestå av flera underliggande kodenheter.

Det finns alternativ till att använda .length, såsom att loopa igenom en sträng och räkna tecken manuellt, men metoden är onödig och ineffektiv jämfört med den inbyggda egenskapen. I modern JavaScript, när man hanterar olika tecken, inklusive de som inte rymms inom det traditionella UCS-2 teckenområdet, kan vi använda Array.from() eller [...str] spridningsoperatorn för att skapa en array innan vi får dess längd, för att korrekt hantera tecken som emojis.

let fancyString = "👩‍🚀🚀";
console.log(fancyString.length);           // Output: 5
console.log(Array.from(fancyString).length); // Output: 2

Notera att metoden med Array.from() är att föredra för att få en riktig räkning av tecken som representeras av surrogatpar i Unicode.

Se även: