1、寫一個ROT13函數,實現輸入加密字符串,輸出解密字符串。
2、所有的字母都是大寫(每個字母都有其對應的Unicode--UTF16值),不要轉化任何非字母形式的字符(例如:空格、標點符號)。
3、編碼思路~~A的ASCLL碼值為65,M為77、Z為90. A的ROT13函數即 N=A+13 。而處理非字母字符串時只需等于自身即可。
function rot13(str){var arr = [];for(var i=0;i<str.length;i++){var num = str.charCodeAt(i); // 字母轉為Unicode值if(num>=65&&num<=90){if(num<=77){num = num + 13;}else{num = num -13;} //判斷是否為字母,N前段+13,后-13。}arr[i] = String.fromCharCode(num); //非字母的空格、標點符號等于自身}return arr.join("");}rot13("SERR PBQR PNZC");小知識
1、String.charCodeAt() https://developer.mozilla.org/zh-CN/docs/Web/javaScript/Reference/Global_Objects/String/charCodeAt
String.fromCharCode() https://developer.mozilla.org/zh-CN/docs/Web/Javascript/Reference/Global_Objects/String/fromCharCode
而對于數組的定義方式:var arr = []; var arr = new Array();
這兩種方式是一樣的,沒什么區別,一種是通過直接量定義,一種是通過JavaScript的內置對象來定義。但是用哪種方式有時候要看定義什么樣的數組
比如new Array(10) 和 [10]這肯定是不一樣的
前者new Array(10) 是定義10個空間大小的數組,每個數組的值都為undefined后者是定義[10]1個空間大小的數組,并且這個數組的值為10
新聞熱點
疑難解答