如何在JavaScript中将字符编码数组转换为字符串?

3

I have this function:

function ungarble(garble){
  var s = "";
  for( var i = 0; i < garble.length; i++ ) {
    s += String.fromCharCode(garble[i]);
  }
  return s;
}

它接收一个charCodes数组, 然后返回由这些charCodes表示的字符串。原生JavaScript是否具有此功能?注意:这是用于读取child_process.spawn返回的消息。

7
String.fromCharCode(...garble) - user1106925
2个回答

10

fromCharCode已经可以接受任意数量的参数来转换为字符串,因此您可以使用apply将其应用到一个数组中:

var chars = [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100];

var str = String.fromCharCode.apply(null, chars);

console.log(str);

或者使用ES6扩展语法

var chars = [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100];

var str = String.fromCharCode(...chars);

console.log(str);


1
我认为如果chars的元素超过65536个,这个方法将无法工作,因为这是函数可以传递的参数数量的限制。 - undefined
1
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply?ref=yuji.page#using_apply_to_append_an_array_to_another - undefined

0

reduce函数怎么样?

 function ungarble(chars) {
    return chars.reduce(function(allString, char) {
        return allString += String.fromCharCode(char);
    }, '');
}

let result = ungarble([65, 66, 67]);

console.log(result) // "ABC"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接