Rog*_*rez 1 javascript arrays string ascii
我已经使用 string.charCodeAt() 将字符串转换为它们的 ascii,但是现在我已经完成了添加/减去值,我想将它们从 ASCII 转换回字母和字符串。
我希望将以下数组转换回它们的字符字母,并最终使用 JavaScript 转换为字符串。
asciiKeys= [70, 69, 69, 69, 32, 67, 66, 68, 69, 32, 67, 65, 77, 67];
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下内容,但它一直声明它不是一个函数:
for (var j=0;j<str.length;j++){
newAsciikeys.push(asciiKeys[j].fromCharCode(0));
}
Run Code Online (Sandbox Code Playgroud)
fromCharCode是 上的静态函数String。因此,这将执行您需要的操作,而无需循环:
reconstituted = String.fromCharCode.apply(null, asciiKeys);
Run Code Online (Sandbox Code Playgroud)
该apply函数是将一组项目发送到函数的方式,就像您手动输入每个参数一样。例如,String.fromCharCode( asciiKeys[0], asciiKeys[1], asciiKeys[2], asciiKeys[3], ... )
(请注意,我假设您不需要中间字符数组,并且此解决方案直接针对您请求的最终字符串。如果您还需要中间字符数组,可以使用reconstituted.split('').分割结果数组。)
编辑:(感谢@Kaiido)
为了健壮性,请注意.apply它可以处理的参数数量(读取:数组大小)具有特定于 JS 引擎的限制。要处理这些情况,请考虑拆分您的工作,或者通过一一处理返回到可靠的旧循环。