JS常用方法模板(更新中)

因为条目比较乱,所以就先不整理目录了,有需要可以Ctrl+F。

,比较并返回最高值

maxnumber = Math.max(A, B, C);

注:0 或多个值。在 ECMASCript v3 之前,该方法只有两个参数。
引:w3school——JavaScript max() 方法

,比较并返回最小值

minnumber = Math.min(A, B, C);

注:0 或多个值。在 ECMASCript v3 之前,该方法只有两个参数。
引:w3school——JavaScript min() 方法

,反转字符串/切割字符串/反转数组/拼接字符串

str = str.split('').reverse().join('');

注:split() 方法用于把一个字符串分割成字符串数组。
w3school——JavaScript split() 方法
reverse() 方法用于颠倒数组中元素的顺序。
w3school——JavaScript reverse() 方法
join() 方法用于把数组中的所有元素放入一个字符串。
w3school——JavaScript join() 方法

,判断某元素是否在指定数组中

var set = new Set([1,2,3,4,5]);
set.add(5);     //重复添加的元素被自动过滤
set.delete(1);  //删除一个key
set.has(1);     //是否存在该元素

注:Set和Map类似,也是一组key的集合,但不存储value。
引:简书——js中set方法

let arr = [1,2,3];
arr.includes(1) //true
arr.includes(5) //false

注:includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
引:JavaScript Array includes() 方法

,获取指定位置的字符串

var str = "123456789";
str.slice(A,B);     //A为起始截取位置,B为结束截取位置

注:返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素,不对原数组进行修改。B选填,不填为到数组结束的所有元素。
引:JavaScript slice() 方法

var str = "123456789";
str.substr(A,B);     //A为起始截取位置,B为截取长度

注:返回一个新的字符串,包含从 A(包括 A 所指的字符) 处开始的长度为B个字符。B选填,不填为到数组结束的所有元素。
引:JavaScript substr() 方法

,计算X的Y次幂

x **= y;

注:指数运算符(**)即可表示X的Y次幂。
引:JavaScript表示x的y次幂

Math.pow(x, y);

注:pow() 方法可返回 x 的 y 次幂的值。x 为底数。必须是数字。y 为幂数。必须是数字。
引:JavaScript pow() 方法

,删除数组中的重复项

    const set = new Set([1, 2, 3, 4, 4]);
    console.log([...set]);//[1,2,3,4]; 

注:展开语法(Spread syntax),将数组表达式或者string在语法层面展开;还可以在构造字面量对象时,将对象表达式按key-value的方式展开。
引:展开语法(Spread syntax)
Js中去除数组中重复元素的6种方法

,快速排序模板

function quick_sort(arr, l, r) {
    if (l >= r) {
        return;
    }
    let i = l - 1, j = r + 1, x = arr[l + r >> 1];
    while (i < j) {
        do {
            i++;
        } while (arr[i] < x);
        do {
            j--;
        } while (arr[j] > x);
        if (i < j) {
            let temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
    quick_sort(arr, l, j);
    quick_sort(arr, j + 1, r);
}

let arr = [4, 3, 5, 1, 4];
quick_sort(arr, 0, arr.length - 1)
console.log(arr);

,大数相加

function addBigNum(a,b){
    var res = '',
        loc = 0;
    a = a.split('');
    b = b.split('');
    while(a.length || b.length || loc){
        //~~把字符串转换为数字,用~~而不用parseInt,是因为~~可以将undefined转换为0,当a或b数组超限,不用再判断undefined
        //注意这里的+=,每次都加了loc本身,loc为true,相当于加1,loc为false,相当于加0
        loc += ~~a.pop() + ~~b.pop();
        //字符串连接,将个位加到res头部
        res = (loc % 10) + res;
        //当个位数和大于9,产生进位,需要往res头部继续加1,此时loc变为true,true + 任何数字,true会被转换为1
        loc = loc > 9;
    }
    return res.replace(/^0+/,'');
}

,大数相乘

function multiplyBigNum(num1, num2) {
    //判断输入是不是数字
    if (isNaN(num1) || isNaN(num2)) return "";
    let len1 = num1.length,
        len2 = num2.length;
    let pos = [];
    //j放外面,先固定被乘数的一位,分别去乘乘数的每一位,更符合竖式演算法
    for (let j = len2 - 1; j >= 0; j--) {
        for (let i = len1 - 1; i >= 0; i--) {
            //两个个位数相乘,最多产生两位数,index1代表十位,index2代表个位
            let index1 = i + j,
                index2 = i + j + 1;
            //两个个位数乘积加上当前位置个位已累积的数字,会产生进位,比如08 + 7 = 15,产生了进位1
            let mul = num1[i] * num2[j] + (pos[index2] || 0);
            //mul包含新计算的十位,加上原有的十位就是最新的十位
            pos[index1] = Math.floor(mul / 10) + (pos[index1] || 0);
            //mul的个位就是最新的个位
            pos[index2] = mul % 10;
        }
    }
    //去掉前置0
    let result = pos.join("").replace(/^0+/, "");
    return result || '0';
}

整理中。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值