Получить строку из списка, связанного с юникодом в javaScript
У меня есть список значений Unicode [65, 66, 67]
и я хочу соответствующую строку "ABC"
, Я посмотрел в документации и нашел функцию String.fromCharCode()
это делает то, что мне нужно сделать. Единственная проблема заключается в том, что аргументы должны быть последовательностью чисел.
Так что, если я использую String.fromCharCode([65, 66, 67])
это дает мне " "
, Есть ли способ, который позволяет рассматривать список как последовательность для функции?
4 ответа
Вы должны распространить массив с помощью ...
spread
Синтаксис
console.log(String.fromCharCode(...[65, 66, 67]));
От MDN
Синтаксис распространения позволяет расширять итерацию, например выражение массива, в местах, где ожидается ноль или более аргументов (для вызовов функций), или элементы (для литералов массива), или выражение объекта может быть развернуто в местах, где ноль или более Ожидаются пары значений (для литералов объектов).
Карта в списке, а затем присоединиться:
var s = [65, 66, 67].map(x => String.fromCharCode(x)).join("");
console.log(s);
/* You can map over the list and the value you need will be output to anoter list */
var charCodes = [65, 66, 67],
stringsFromCharCodes = charCodes.map(item => String.fromCharCode(item));
console.log('new list: ', stringsFromCharCodes);
Вы можете использовать применить, чтобы решить эту проблему
var chars = [65,66,67]
var s = String.fromCharCode.apply({}, chars)
console.log(s);