从列表中获取包含 JavaScript 中的 Unicode 的字符串

Posted

技术标签:

【中文标题】从列表中获取包含 JavaScript 中的 Unicode 的字符串【英文标题】:Get string from a list contain Unicode in JavaScript 【发布时间】:2017-12-11 00:12:21 【问题描述】:

我有一个 Unicode 值列表 [65, 66, 67],我想要相应的字符串 "ABC"。我查看了documentation 并找到了函数String.fromCharCode(),它可以完成我需要做的事情。唯一的问题是参数必须是数字序列

所以如果我使用String.fromCharCode([65, 66, 67]),它会给我" "

有没有办法允许列表被视为序列函数

【问题讨论】:

Convert character to ASCII code in javascript的可能重复 你提到了“unicode”。如果您想支持的不仅仅是 ISO/IEC-8859-1(又名 ASCII + 字节上半部分的表格),请使用 String.fromCodePoint(unicodeValue) 【参考方案1】:

您需要使用... spread 语法传播数组。

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

来自MDN

Spread 语法允许像数组表达式这样的可迭代对象 在零个或多个参数的地方扩展(用于函数调用) 或元素(对于数组文字)是预期的,或对象表达式 在零个或多个键值对(例如 对象文字)是预期的。

【讨论】:

吹毛求疵,... is not an operator 这正是我想要的。 感谢 Patrick 指出,Multiple 网站确实提到了传播运算符的使用。但是,MDN 确实提到它为 语法,我会检查链接和规范。【参考方案2】:

你可以使用 apply 来解决这个问题

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

【讨论】:

【参考方案3】:

/* 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);

【讨论】:

【参考方案4】:

在列表上映射然后加入:

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

【讨论】:

以上是关于从列表中获取包含 JavaScript 中的 Unicode 的字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何创建多个从同一个数组中获取值的动态下拉列表,而无需更改 Javascript 中的其他下拉列表

如何从Javascript中的页面中提取链接列表

如何从 Javascript 中的对象列表中获取键的值?

有啥方法可以扩展包含列表的 pandas Dataframe 中的列并从列表值本身中获取列名?

Javascript - 如何从数组列表中获取最后一条记录? [复制]

使用开发工具控制台中的 JavaScript 片段从 HTML 获取 YouTube 播放列表标题和频道名称