簡體   English   中英

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()的文檔,則會首先看到您在錯誤地調用它

因為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM