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

}

 

posted @ 2020-08-09 20:08  sinceForever  阅读(416)  评论(0编辑  收藏  举报