2016-11-20 37 views
1

我寫了一個函數,目的是爲字符串中的每個字母填充一個包含uni代碼字符的數組。如何使用字符串中的單字符代碼填充數組?

但是,我返回的結果是一個空值的數組。

function rot13(str) { 
 
    var splitString = str.split(""); 
 
    var myArray = []; 
 

 
    for (var i = 0; i < splitString.length; i++) { 
 
    myArray.push(splitString[i].charCodeAt[i]); 
 
    } 
 
    return myArray; 
 
} 
 
console.log(rot13('cats'));

+0

'charCodeAt'是一個函數。 – SLaks

+0

'splitString [i] .charCodeAt [i]'→'str.charCodeAt(i)'。 'charCodeAt'是一個函數。 – Ryan

+1

而且你不需要'split'。 – SLaks

回答

3

String.prototype.charCodeAt(n)發現在位置n字符串的字符的代碼。因此,而不是分裂的字符串,只是重複它:

function rot13(str) { 
 
    var myArray = []; 
 

 
    for(var i = 0; i < str.length; i++) { 
 
    myArray.push(str.charCodeAt(i)); 
 
    } 
 
    
 
    return myArray; 
 
} 
 

 
console.log(rot13('cats'));

0

發佈此替代 - 依然採用了function charcodeAt()

function rot13(str) { 
 
    return str.split("").map(function(char) { 
 
     return char.charCodeAt(); 
 
    }); // .join(""); 
 
} 
 
console.log(rot13("cats"))

0
function toChars(x,i){ 
    x = x.split(""); i = 0; 
    while(x[i]) x[i] = String.charCodeAt(x[i++]); 
    return x; 
}