本人博主 孤雪飘寒原创,对你有帮助请点赞,有想法或问题请在下面评论说出来,博主第一时间回复,转载请注明出处,谢谢
JS篇
1.整数的阶乘
function factorialize(num) {
return (num<1) ? num = 1 : num*factorialize(num-1);
}
2.检查字符串是否回文
function palindrome(str) {
// Good luck!
//忽略标点符号
str=str.replace(/\W+/g,'');
str=str.replace(/\_+/g,'');
//忽略大小写
str=str.toLowerCase();
//重组
var newArray=str.split('').reverse().join('');
if(str==newArray){
return true;
}else{
return false;
}
}
palindrome("eye");
3.检查字符串中最长单词长度
function findLongestWord(str) {
var arr=str.split(' ');
var bjs=0;
for(var i=0;i<arr.length;i++){
var arrNum=arr[i].length;
if(arrNum>bjs){
bjs=arrNum;
}
}
return bjs;
}
findLongestWord("The quick brown fox jumped over the lazy dog");
4.首字母全部大写
function titleCase(str) {
str=str.toLowerCase().split(' ');
var newStr='';
var newArray=[];
for(var i=0;i<str.length;i++){
var a=str[i][0].toUpperCase();
var str1 = str[i].replace(/^\w/,a);
newArray.push(str1);
}
newStr=newArray.join(' ');
return newStr;
}
titleCase("I'm a little tea pot");
5.二维数组中最大值组成一个新的数组
function largestOfFour(arr) {
// You can do this!
var newArray=[];
for(var i=0;i<arr.length;i++){
var bjs=0;
for(var j=0;j<arr[i].length;j++){
if(arr[i][j]>bjs){
bjs=arr[i][j];
newArray[i]=bjs;
}
}
}
return newArray;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 1857, 1]]);
6.判断第二参数的字符串是否存在于第一参数字符串中
function confirmEnding(str, target) {
// "Never give up and good luck will find you."
// -- Falcor
return str.substr(-(target.length))==target?true:false;
}
confirmEnding("He has to give me a new name", "name");
7.重复一个指定的字符串 num次,如果num是一个负数则返回一个空字符串。
function repeat(str, num) {
// repeat after me
if(num<=0){
return "";
}
var arr=[];
for(var i=0;i<num;i++){
arr[i]=str;
}
str=arr.join("");
return str;
}
repeat("abc", 2);
8.截取字符长度,根据参数大小判断添加后长度
function truncate(str, num) {
// Clear out that junk in your trunk
if(str.length > num){
if(num <= 3){
str = str.slice(0,num).concat("...");
}else{
str = str.slice(0,num-3).concat("...");
}
}
return str;
}
truncate("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length + 2);
9.将一个数组根据参数拆分成二维数组
function chunk(arr, size) {
// Break it up.
var newArray=[];
for(var i=0;i<arr.length;i=i+size){
var index=i+size;
var tempArray=arr.slice(i,index);
newArray.push(tempArray);
//简化写法
// newArray.push(arr.slice(i,i+size));
}
return newArray;
}
chunk(["a", "b", "c", "d"], 2);
10.数组的切割
function slasher(arr, howMany) {
// it doesn't always pay to be first
var newArray=[];
if(howMany>arr.length){
return newArray;
}
newArray=arr.slice(howMany);
return newArray;
}
slasher([1, 2, 3], 2);
11.蛤蟆可以吃队友,也可以吃对手。
如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true。
function mutation(arr) {
var str1=arr[0].toLowerCase();
var str2=arr[1].toLowerCase();
//1.整句存在
//return str1.indexOf(str2)<0?false:true;
//2.每个都存在
for(var i=0;i<str2.length;i++){
if(str1.indexOf(str2.charAt(i))==-1){
return false;
}
}
return true;
}
mutation(["zyxwvutsrqponmlkjihgfedcba", "qrstu"]);
12.删除数组中的所有假值。
在JavaScript中,假值有false、null、0、”“、undefined 和 NaN。
function bouncer(arr) {
// Don't show a false ID to this bouncer.
var newArr=arr.filter(function(x){
return Boolean(x)!=false;
});
return newArr;
}
bouncer([7, "ate", "", false, 9,0]);
13.实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值。
function destroyer(arr) {
// Remove all the values
var oneArr=arguments[0];
var newArr=[];
var fArr=[];
//获取所有要剔除的条件
for(var i=1;i<arguments.length;i++){
newArr[i-1]=arguments[i];
}
//过滤
fArr=oneArr.filter(function(x){
for(var i=0;i<newArr.length;i++){
if(x==newArr[i]){
return false;
}
}
return true;
});
return fArr;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
14.先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。
function where(arr, num) {
// Find my place in this sorted array.
arr.push(num);
arr.sort(function(a,b){return a-b;});
var indexArr=0;
for(var i=0;i<arr.length;i++){
if(arr[i]==num){
indexArr=i;
return indexArr;
}
}
return indexArr;
}
where([40, 60], 50);
15.写一个ROT13函数,实现输入加密字符串,输出解密字符串。
所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,跳过它们。
function rot13(str) { // LBH QVQ VG!
var arr=str.toUpperCase().split(" ");
var str1=[];
for(var i=0;i<arr.length;i++) {
var arr1=arr[i].split("");
for(var j=0;j<arr1.length;j++) {
var num=arr1[j].charCodeAt();
if(num>=65&&num<=90) {
arr1[j]=num+13>90?String.fromCharCode(64+(num+13-90)):String.fromCharCode(num + 13);
}
}
str1.push(arr1.join(""));
}
return str1.join(" ");
//return String.charCodeAt(str);
}
// Change the inputs below to test
rot13("Z");