首页 > 解决方案 > 我尝试使用此解决方案将二进制数转换为句子“篝火不好玩吗!?” 但在这句话出现'未定义'之前。怎么能去掉这个?

问题描述

function binaryAgent(str) {
  let arr = str.split(' ');
  var digit = [];
  var newStr;
  for (var i = 0; i < arr.length; i++) {
    digit.push(parseInt(arr[i], 2));
  }

  for (let j = 0; j < digit.length; j++) {
    newStr += String.fromCharCode(digit[j]);
  }
  return newStr;
}

console.log(
  binaryAgent(
    '01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111',
  ),
);

输出:'undefinedAren's not bonfires fun!?'

期望输出:'篝火不好玩吗!?'

标签: javascriptbinary

解决方案


您只需要初始化newStr为一个空字符串

function binaryAgent(str) {
  let arr = str.split(' ');
  var digit = [];
  var newStr = ''; // <-- Here
  for (var i = 0; i < arr.length; i++) {
    digit.push(parseInt(arr[i], 2));
  }

  for (let j = 0; j < digit.length; j++) {
    newStr += String.fromCharCode(digit[j]);
  }
  return newStr;
}

console.log(
  binaryAgent(
    '01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111',
  ),
);


推荐阅读