Nic*_*ick 23 javascript arrays fromcharcode
我可能会在这里提出错误的问题,所以如果答案是在另一个问题上,我会道歉......但我一直无所顾忌.
在一个片段中,为什么这不起作用?
array = [72,69,76,76,79];
document.write(String.fromCharCode(array));
Run Code Online (Sandbox Code Playgroud)
我正在收集数组中的关键事件,并希望能够在提示时将它们写为字符.虽然这有效:
document.write(String.fromCharCode(72,69,76,76,79));
Run Code Online (Sandbox Code Playgroud)
当我把它作为一个数组传递时,我似乎无法使它工作.我也尝试先将数组转换为String(),以及array.join(","); 创建逗号分隔列表......但没有.有任何想法吗?有没有更好的方法将我在数组中收集的值转换为字符?
ale*_*lex 36
你可以使用函数的apply()方法......
document.write(String.fromCharCode.apply(null, array));
Run Code Online (Sandbox Code Playgroud)
ES6可以使用传播运营商......
document.write(String.fromCharCode(...array));
Run Code Online (Sandbox Code Playgroud)
您也可以使用数组的reduce()方法,但较旧的IE不支持它.你可以填充它,但apply()更好地支持该方法.
document.write(array.reduce(function(str, charIndex) {
return str += String.fromCharCode(charIndex);
}, ''));?
Run Code Online (Sandbox Code Playgroud)
是的,您可以使用apply()来调用作为参数传入的数组的函数:
array = [72,69,76,76,79];
document.write(String.fromCharCode.apply(String, array));
Run Code Online (Sandbox Code Playgroud)