JavaScript常用算法1

1、翻转字符串
function reverseString(str) {
    /** 1、先把字符串分割成数组
            2、用数组reverse()方法数组翻转
            3、把数组用join()方法拼接成字符串
            */
    return str.split('').reverse().join('');
}
reverseString('hello');
2、阶乘
function factorialize(num) {
    // 当num为1或0时,返回1
    if(num <= 1) {
        return 1;
    }else {
        // 否则返回num*自身的递归
        return num * factorialize(num - 1);
    }
}
factorialize(5);
3、回文数 (去掉空格、标点符号,大小写)
palindrome(回文)是指一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样。
function palindrome(str) {
    str = str.replace(/[\W_]/gi,"");
    var str1 = str.split('').reverse().join('');
    if(str.toLowerCase() === str1.toLowerCase()) {
        return true;
    }else {
        return false;
    }
}
4、寻找最长的单词
返回提供的句子中最长的单词的长度。返回值应该是一个数字。
function findLongestWord(str) {
    // 将字符按空格分隔为数组
    var arr = str.split(' ');
    // 取得数组中的第一个值,默认为是最大值
    var max = arr[0];
    // for循环数组中的数据
    for (var i=1;i<arr.length;i++) {
        // 将max的值跟数组中的值做比较
        if(max.length < arr[i].length) {
            // 把值大的赋值给max变量
            max = arr[i];
        }
    }
    console.log(max);
    return max.length;
}

findLongestWord("The quick brown fox jumped over the lazy dog");
5、设置首字母大写
返回一个字符串,确保字符串的每个单词首字母都大写,其余部分小写。
function titleCase(str) {
    // 字符串转数组
    var arr = str.split(' ');
    var arrResult = [];
    // for循环取得数组中的单词
    for(var i=0;i<arr.length;i++) {
        // 将数组中的单词统一转换为小写
        var strValue = arr[i].toLocaleLowerCase();
        // 把每个单词的首字母替换成大写
        var temp = strValue.replace(strValue[0],strValue[0].toLocaleUpperCase());
        // 将单词存储数组中
        arrResult.push(temp);
        if((arr.length - 1) != i){
            arrResult.push(' ');
        }
    }
    return arrResult.join('');
}

console.log(titleCase("I'm a little tea pot"));
6、寻找数组中的最大值
在右边的大数组中包含了4个小数组,请分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新的数组。
function largestOfFour(arr) {
    var arrNew = [];
    // 遍历一维数组
    for(var i=0;i<arr.length;i++) {
        var max = 0;
        // 遍历二维数组
        for(var j=0;j<arr[i].length;j++) {
            // 判断数组中的数据是否是最大值
            if(max < arr[i][j]) {
                max = arr[i][j];
            }
        }
        arrNew.push(max);
    }
    console.log(arrNew);
    return arrNew;
}

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

7、确认末尾字符
检查一个字符串(str)是否以指定的字符串(target)结尾。

如果是,返回true;如果不是,返回false。
function confirmEnding(str, target) {
    var arr = str.split(' ');
    if(target.length > 1) {
        if(arr[arr.length-1].indexOf(target) > -1){
            return true;
        }else {
            return false;
        } 
    }else {
        if(target == str[str.length - 1]) {
            return true;
        }else {
            return false;
        }
    }
}

confirmEnding("Bastian", "n");
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容