• js十大经典算法关键点总结


    1,冒泡排序:两轮for循环,第一轮控制总对比次数,第二轮相邻元素对比,符合条件则交换

    2,选择排序:两轮for循环,第一轮控制交换,即第二轮获得的最小值与当前循环起点元素交换,第二轮就是从拿第一轮循环最后的值与后面的值

    开始比较,符合条件则将下标交换,最后获得当前一轮最小值下标,执行第一轮。

    3,翻转字符串:

    str.split("").reverse().join("")

    4,计算一个整数的阶乘,

    function factorialize(num){}
    
    if(num < 1) {
    
        return 1
    
    }else{
    
        return num*factorialize(num - 1)
    
    }

    5,如果给定的字符串是回文,返回true,反之,返回false。

    stra = str.replace(/[^0-9A-Za-z]/g, '').toLowerCase()
    
     
    
    strb = stra.splice('').reverse().join('')
    
    if(stra === strb){
    
        return true
    
    }else {
    
        return false
    
    }

    6, 找到提供的句子中最长的单词,并计算它的长度。

    function findLongestWord(str) {
    
        let arra = str.split(" ")
    
        let arrb = arra.sort(function(a, b){
    
            return b.length - a.length
    
        })
    
        let maxLength = arrb[0].length
    
        return maxLength
    
    }

    7、确保字符串的每个单词首字母都大写,其余部分小写。

    function titleCase(str) {
    
        let strArr = str.split(" ").toLowercase();
    
        for(let i = 0; i < strArr.length; i++) {
    
            strArr[i] = strArr[i][0].toUpperCase() + strArr[i].subString(1, strArr[i].length)] 
    
        }
    
        return strArr
    
    }

    8、右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组。

    function largestOfFour(arr){
    
        let arra = [];
    
        let arrb = [];
    
        for(let n in arr){
    
            arra[n] = arr[n].sort(function(a, b){
    
                return b - a;
    
            })
    
            arrb.push(arra[n][0])
    
        }
    
        return arrb;
    
    }

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

    9, 判断字符串是否以指定字符串结尾

    function confirmEnding(str, target){
    
        let length = str.length
    
        let lastStr = str.subStr(-length)
    
        if(lastStr == target){
    
            return true
    
        }else {
    
            return false
    
        }
    
    }
    function confirmEnding2(str, target){
    
        let length = str.length
    
        let lastStr = str[length-1]
    
        if(lastStr == target){
    
            return true
    
        }else {
    
            return false
    
        }
    
    }

    10、重复一个指定的字符串 num次,如果num是一个负数则返回一个空字符串。

    function repeat(str, num) {
    
        let astr = str
    
        if(num < 0){
    
            return ''
    
        }else {
    
            for(let i = 0; i < num; i++){
    
                str +=astr
    
            }
    
            return str
    
        }
    
    }

    11 截断一个字符串!

     

        如果字符串的长度比指定的参数num长,则把多余的部分用...来表示。

     

        切记,插入到字符串尾部的三个点号也会计入字符串的长度。

     

        但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。

    function truncate(str, num){
    
        let length = str.length
    
        let stra = str.slice(0, num - 3)
    
        let strb = str.slice(0, num)
    
        if(length > num){
    
            if(num < 3){
    
                return strb + '...'
    
            }else {
    
                return stra + '...'
    
            }
    
        }else {
    
            return str
    
        }
    
    }
    function truncate2(str, num){
    
        let length = str.length
    
        if(length > num){
    
            if(num < 3){
    
                return str.slice(0, num) + '...'
    
            }else {
    
                return str.slice(0, num-3) + '...'
    
            }
    
        }else {
    
            return str
    
        }
    
    }

    12,把一个数组arr按照指定的数组大小size分割成若干个数组块

    function chunk(arr, size) {
    
        let arra = []
    
        for(let i = 0; i < arr.length; i+=size){
    
            arra.push = arr.slice(i, i+size)
    
        }
    
        return arra
    
    }
  • 相关阅读:
    xp安装IIS admexs.dll问题
    MySql 牛哥推荐有空看看
    PHP常用类型判断函数
    GET和POST的真正区别
    许多真理
    PHP file_put_contents() 函数
    Intellijidea建javaWeb以及Servlet简单实现
    新手上路,配置阿里云CentOS服务器LAMP
    php的socket通信
    PHP常用的一些数组操作总结
  • 原文地址:https://www.cnblogs.com/sinceForever/p/13466076.html
Copyright © 2020-2023  润新知