1

i'm in the freecodecamp's bonfire "binary agents" and I almost got it. It returns the correct answer but with an "undefined" first and I don't see why..

function binaryAgent(str) {

var arr = str.split(" ");
var charcoded = [];
var finalStr;

for (var i=0; i<arr.length; i++) {

finalStr += String.fromCharCode((parseInt(arr[i], 2)));

}

return finalStr;

}

binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111");
Suraj Rao
  • 29,388
  • 11
  • 94
  • 103
Chantun
  • 81
  • 1
  • 7

4 Answers4

1

You could initialise the variable finalStr for collecting the characters with an empty string '', otherwise the variable has the value undefined and concats the characters to it.

var finalStr = '';

function binaryAgent(str) {
    var arr = str.split(" "),
        charcoded = [],
        finalStr = '',
        i;

    for (i = 0; i < arr.length; i++) {
        finalStr += String.fromCharCode((parseInt(arr[i], 2)));
    }
    return finalStr;
}

console.log(binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111"));
Nina Scholz
  • 376,160
  • 25
  • 347
  • 392
1

the simplest way

function binaryAgent(str) {
    var newStr = str.split(' ').map(item => {
                    return String.fromCharCode(parseInt(item, 2));
                 });
    return newStr.join('');
}

binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111");
ishak
  • 51
  • 4
1

This is how I made it :)

function binaryAgent(str) {
      str = str.split(" ");
      var  final = '';

      for (var i = 0; i < str.length; i++) {
          final += String.fromCharCode((parseInt(str[i], 2)));
      }
      return final;
    }

    binaryAgent("01000001 01110010 01100101 01101110 00100111 01110100 00100000 01100010 01101111 01101110 01100110 01101001 01110010 01100101 01110011 00100000 01100110 01110101 01101110 00100001 00111111");
0

This is how I did "Binary Agents" challenge

function binaryAgent(str) {
    return str.split(" ").map((x) => x = String.fromCharCode(parseInt(x, 2))).join("");
}
O'Neil
  • 3,790
  • 4
  • 16
  • 30
Kasthuri
  • 11
  • 5