js-tips

Author Avatar
zongyuan 6月 19, 2018 【字数:289】 【阅读时长:1min】
  • 在其它设备中阅读本文章

常用的一些js小技巧,收录中…

一、算法

q1:判断一个单词是否为回文

回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环

核心代码:

function checkPalindrom(str) {  
    return str === str.split('').reverse().join('');
}
q2:数组去重

es6实现:

var new_arr = [...new Set(old_arr)];

es5实现:

var reNewArr = function(arr) {
    let new_arr = [];
    for (let i = 0, len = arr.length; i < len; i++) {
        if (!(new_arr.indexOf(arr[i]) > -1)) {
            new_arr.push(arr[i]);
        }
    }
    return new_arr;
}
q3:排序算法

冒泡排序:

function bubbleSort(arr){
    if(arr.length<=1) {
        return arr;
    }
    for (let i = 0, len = arr.length; i < len - 1; i++) {
        for (let j = i + 1; j < len; j ++) {
            if (arr[i] < arr[j]) {  // 此处控制升序或者降序
                let item = arr[i];
                arr[i] = arr[j];
                arr[j] = item;
            }
        }
    }
    return arr;
}

快速排序:

function quickSort(arr) {
    if(arr.length<=1) {
        return arr;
    }
    let left_arr = [],
        right_arr = [],
        q = arr[0],
        len = arr.length;
    for (let i = 1; i < len; i++){
        if(arr[i] > q) {  // 此处控制升序或者降序
            right_arr.push(arr[i])
        } else {
            left_arr.push(arr[i])
        }
    }
    return [].concat(quickSort(left_arr),[q],quickSort(right_arr));
}   
q4:中国所有合法手机号码的正则表达式
/^1(?:3\d|4[4-9]|5[0-35-9]|6[67]|7[013-8]|8\d|9\d)\d{8}$/

感谢阅读 thx~
本文链接:https://627235655.github.io/2018/06/19/js-tips/