[英]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()的文檔,則會首先看到您在錯誤地調用它
因為fromCharCode()是String的靜態方法,所以您始終將其用作String.fromCharCode(),而不是將其用作創建的String對象的方法。
您可以傳入一個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 decimalToText(unicodeArray){
return String.fromCharCode.apply(null, unicodeArray);
}
console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));
或者使用ES6,您可以使用點差運算符
function decimalToText(unicodeArray){
return String.fromCharCode(...unicodeArray);
}
console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.