Warum funktioniert „Array.from“ bei Strings anders?JavaScript

Javascript-Forum
Guest
 Warum funktioniert „Array.from“ bei Strings anders?

Post by Guest »

Dies ist meine Eingabezeichenfolge:

Code: Select all

str = `👍🤌🤔😊😎😂😘👌😒😍❤️🤣`;
// str.length = 24
// str.split("") = [ "\ud83d", "\udc4d", /* 22 more elements */ ],
Wenn ich also Array.from(str) aufrufe, erwarte ich, dass intern Folgendes passiert:

Code: Select all

arr = Array.from({
length: 24,
0: "\ud83d", 1: "\udc4d" /* ... and so on */
})
Und arr sollte dasselbe sein wie str.split(""):

Code: Select all

["\ud83d", "\udc4d", /* 22 more elements */ ]
Aber der Wert von arr ist dieser:

Code: Select all

// arr.length = 13
[
"👍",  "🤌",  "🤔", "😊",  "😎",  "😂",
"😘",  "👌",  "😒",  "😍",  "❤",  "️",
"🤣"
]
Zur Referenz: Dies entspricht dem, was wir erhalten, wenn wir str.match(/[\s\S]/)gu aufrufen . Warum?

Code: Select all

const str = `👍🤌🤔😊😎😂😘👌😒😍❤️🤣`
const arr = Array.from(str)
console.log(arr)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post