js的几道面试题
1 // 一般方法 2 function fnToCamel(str){ 3 var arr = str.split(‘-‘), 4 len = arr.length, 5 i; 6 for(var i = 1; i < len; i++){ 7 arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substring(1); 8 } 9 return arr.join(‘‘); // 注意空字符串 默认是逗号 10 } 11 // 正则 12 function fnToCamelRE(str){ 13 var re = /-(\w)/g; 14 return str.replace(re, function(arg0, arg1){ 15 return arg1.toUpperCase(); 16 }); 17 }
1 // 一般方法 2 function fnGetMost(str){ 3 var obj = {}, 4 len = str.length, 5 num = 0, 6 i, 7 char; 8 9 for(var i = 0; i < len; i++){ 10 if(obj[str[i]]){ 11 obj[str[i]].push(str[i]); 12 }else{ 13 obj[str[i]] = [str[i]]; 14 } 15 } 16 17 for(i in obj){ 18 if(num < obj[i].length){ 19 num = obj[i].length; 20 char = obj[i][0]; 21 } 22 } 23 24 return { 25 char: char, 26 num: num 27 }; 28 } 29 30 // 正则 31 function fnGetMostRE(str){ 32 var arr = str.split(‘‘), 33 re = /(\w)\1+/, 34 num = 0, 35 char; 36 37 arr.sort(); 38 str = arr.join(‘‘); 39 40 str.replace(re, function(arg0, arg1){ 41 if(arg0.length > num){ 42 num = arg0.length; 43 char = arg1; 44 } 45 }); 46 47 return { 48 char: char, 49 num: num 50 }; 51 }
1 // 一般方法 2 function fnGetThousand(str){ 3 var len = str.length, 4 num = len % 3, 5 arr = [], 6 i; 7 8 if(num > 0){ // 将字符串开始的多余字符先作为整体放入数组中 9 arr.push(str.substring(0, num)); 10 } 11 12 str = str.substring(num); // 去掉多余的字符 13 len = str.length; 14 15 for(i = 0; i < len; i += 3){ // 三个一位存入数组 16 arr.push(str.substr(i, 3)); 17 } 18 return arr.join(); 19 } 20 21 // 正则 22 function fnGetThousandRE(str){ 23 var re = /(?=(?!\b)(\d{3})+$)/g; 24 25 return str.replace(re, ‘,‘); 26 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。