Получить строку из списка, содержащего Unicode в JavaScript

У меня есть список значений Юникода [65, 66, 67], и мне нужна соответствующая строка "ABC". Я просмотрел документацию и нашел функцию String.fromCharCode(), которая делает то, что мне нужно. Единственная проблема в том, что аргументы должны быть последовательностью чисел.

Так что, если я использую String.fromCharCode([65, 66, 67]), это дает мне " ".

Есть ли способ, который позволяет рассматривать список как последовательность для функции?


person Abhinav Srivastava    schedule 06.07.2017    source источник
comment
Возможный дубликат преобразовать символ в код ASCII в JavaScript   -  person Kukic Vladimir    schedule 06.07.2017
comment
Вы упомянули юникод. Если вы хотите поддерживать не только ISO / IEC-8859-1 (также известную как таблица ASCII + для верхней половины байта), используйте _ 1_   -  person Patrick Roberts    schedule 06.07.2017


Ответы (3)


Вам необходимо разложить массив, используя ... spread синтаксис.

console.log(String.fromCharCode(...[65, 66, 67]));

Из MDN

Синтаксис Spread позволяет расширять итерацию, такую ​​как выражение массива, в местах, где ожидается ноль или более аргументов (для вызовов функций) или элементов (для литералов массива), или выражение объекта, которое должно быть развернуто в местах, где ноль или более ключей- ожидаются пары значений (для объектных литералов).

person Abhinav Galodha    schedule 06.07.2017
comment
Вкратце, ... не оператор - person Patrick Roberts; 06.07.2017
comment
Это именно то, что я искал. - person Abhinav Srivastava; 06.07.2017
comment
Спасибо, Патрик, за указание на это, на сайте Multiple упоминается использование Spread Operator. Однако MDN упоминает это как синтаксис, я проверю ссылку и спецификацию. - person Abhinav Galodha; 06.07.2017

Карта в списке, а затем присоединяйтесь:

var s = [65, 66, 67].map(x => String.fromCharCode(x)).join("");
console.log(s);

person Psidom    schedule 06.07.2017

вы можете использовать приложение, чтобы решить эту проблему

var chars = [65,66,67]
var s = String.fromCharCode.apply({}, chars)
console.log(s);

person frithjof    schedule 06.07.2017