zoukankan      html  css  js  c++  java
  • 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
    
    }
  • 相关阅读:
    leetcode 576. Out of Boundary Paths 、688. Knight Probability in Chessboard
    leetcode 129. Sum Root to Leaf Numbers
    leetcode 542. 01 Matrix 、663. Walls and Gates(lintcode) 、773. Sliding Puzzle 、803. Shortest Distance from All Buildings
    leetcode 402. Remove K Digits 、321. Create Maximum Number
    leetcode 139. Word Break 、140. Word Break II
    leetcode 329. Longest Increasing Path in a Matrix
    leetcode 334. Increasing Triplet Subsequence
    leetcode 403. Frog Jump
    android中webView加载H5,JS不能调用问题的解决
    通过nginx中转获取不到IP的问题解决
  • 原文地址:https://www.cnblogs.com/sinceForever/p/13466076.html
Copyright © 2011-2022 走看看