2017-02-19 57 views
1

我在freecodecamp的篝火「二進制代理」,我幾乎得到它。它返回正確的答案,但有一個「不確定」第一,我不明白爲什麼..從二進制到charcode到文本javascript

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"); 

回答

1

你可以初始化變量finalStr與空字符串''收集的字符,否則該變量的值undefined並將字符連接到它。

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"));

+0

謝謝!這很簡單!我覺得現在就像一個白癡 – Chantun

+0

@Chantun,沒關係。 –

1

最簡單的方法

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"); 
1

這是我如何做它:)

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");