JavaScript - fromCharCode 不是函数?
JavaScript - fromCharCode is not a function?
我正在尝试将十进制转换为文本,如下所示:
function decimalToText(str){
var arr = [];
for (var i = 0, l = str.length; i < l; i ++) {
var text = str.fromCharCode(i);
arr.push(text);
}
return arr.join('');
}
所以我想将'104 101 108 108 111 32 119 111 114 108 100'转换为'hello world',例如
但我一直收到 Uncaught TypeError: str.fromCharCode is not a function
有人知道我哪里错了吗?
你很接近。如果您看一下 fromCharCode() 的文档,您首先会发现您调用它的方式不正确
Because fromCharCode() is a static method of String, you always use it as String.fromCharCode(), rather than as a method of a String object you created.
可以传入一个unicode字符数组,循环遍历,例如:
function decimalToText(unicodeArray){
var arr = [];
for (var index in unicodeArray) {
var text = String.fromCharCode(unicodeArray[index]);
arr.push(text);
}
return arr.join('');
}
console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));
或者更干净(无循环),您可以使用 apply function
function decimalToText(unicodeArray){
return String.fromCharCode.apply(null, unicodeArray);
}
console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));
或者在 ES6 中你可以使用 spread operator
function decimalToText(unicodeArray){
return String.fromCharCode(...unicodeArray);
}
console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));
我正在尝试将十进制转换为文本,如下所示:
function decimalToText(str){
var arr = [];
for (var i = 0, l = str.length; i < l; i ++) {
var text = str.fromCharCode(i);
arr.push(text);
}
return arr.join('');
}
所以我想将'104 101 108 108 111 32 119 111 114 108 100'转换为'hello world',例如
但我一直收到 Uncaught TypeError: str.fromCharCode is not a function
有人知道我哪里错了吗?
你很接近。如果您看一下 fromCharCode() 的文档,您首先会发现您调用它的方式不正确
Because fromCharCode() is a static method of String, you always use it as String.fromCharCode(), rather than as a method of a String object you created.
可以传入一个unicode字符数组,循环遍历,例如:
function decimalToText(unicodeArray){
var arr = [];
for (var index in unicodeArray) {
var text = String.fromCharCode(unicodeArray[index]);
arr.push(text);
}
return arr.join('');
}
console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));
或者更干净(无循环),您可以使用 apply function
function decimalToText(unicodeArray){
return String.fromCharCode.apply(null, unicodeArray);
}
console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));
或者在 ES6 中你可以使用 spread operator
function decimalToText(unicodeArray){
return String.fromCharCode(...unicodeArray);
}
console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));