Почему Array.from работает со строками по-другому?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему Array.from работает со строками по-другому?

Сообщение Anonymous »

Это моя входная строка:

Код: Выделить всё

str = `👍🤌🤔😊😎😂😘👌😒😍❤️🤣`;
// str.length = 24
// str.split("") = [ "\ud83d", "\udc4d", /* 22 more elements */ ],
Итак, когда я вызываю Array.from(str), я ожидаю, что это произойдет внутри:

Код: Выделить всё

arr = Array.from({
length: 24,
0: "\ud83d", 1: "\udc4d" /* ... and so on */
})
И arr должно быть таким же, как str.split(""):

Код: Выделить всё

["\ud83d", "\udc4d", /* 22 more elements */ ]
Но значение arr следующее:

Код: Выделить всё

// arr.length = 13
[
"👍",  "🤌",  "🤔", "😊",  "😎",  "😂",
"😘",  "👌",  "😒",  "😍",  "❤",  "️",
"🤣"
]
Для справки: это равно тому, что мы получим, если вызовем str.match(/[\s\S]/)gu . Почему?

Код: Выделить всё

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



Подробнее здесь: https://stackoverflow.com/questions/793 ... on-strings
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»