`

Js工具类

阅读更多

Js工具类

 

常用方法整理如下:

/* 随机排序 */
function randomSort() {
    return Math.random() > .5 ? -1 : 1;
}

/* 生成随机数组 */
function randomArr(sourceArr, length, zeroFlag) {
    var targetArr = [];
    var arrTemp1 = sourceArr.concat();
    var arrTemp2 = sourceArr.concat();
    for(var i = 0; i < length; i ++) {
        var index = 0;
        if(zeroFlag) {
            index = randomArrVal(arrTemp1);
        } else {
            index = randomArrVal(arrTemp1) - 1;
        }
        targetArr.push(arrTemp2[index]);
    }
    return targetArr.sort();
}

/* 取指定数组中不重复的随机数 */
function randomArrVal(sourceArray) {
    //在数组中产生一个随机索引
    var arrIndex = Math.floor(Math.random() * sourceArray.length);
    var arrValue = parseInt(sourceArray[arrIndex]);
    sourceArray.splice(arrIndex, 1);
    return arrValue;
}

/* 重构数组,使其可以删除指定元素 */
Array.prototype.indexOf = function(val) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == val) return i;
    }
    return -1;
};
Array.prototype.remove = function(val) {
    var index = this.indexOf(val);
    if (index > -1) {
        this.splice(index, 1);
    }
}

/* 重构数组,增加判断数组是否包含某个元素的方法 */
Array.prototype.in_array = function(e)
{
    for(var i = 0; i < this.length; i++)
    {
        if(this[i] == e)
            return true;
    }
    return false;
}

/* 排列算总数,n为上值,m为下值 */
function permutation(n, m) {
    var front = 1;
    for(var i = 0 ; i < n; i++){
        front = front * (m - i);
    }
    return front;
}

/* 组合算总数,n为上值,m为下值 */
function combination(n, m){
    var front = 1;
    for(var i = 0 ; i < n; i++){
        front = front * (m - i);
    }
    var back = 1;
    for(var i = 1; i <= n; i++){
        back = back * i;
    }
    return front/back;
}

/* 组合拆分 */
function combinationSplit(sourceArr, count) {
    var result = [];
    if(null != sourceArr && sourceArr.length >= count && count >0 ){
        var tempArr = [];
        combineRecursion(sourceArr, 0, count, tempArr, result);
    }
    return result;
}

/* 递归求组合 */
function combineRecursion(arr1, begin, number, arr2, arr3) {
    if(number == 0) {
        var tempArr = arr2.concat()
        arr3.push(tempArr);
        return;
    }
    if(begin == arr1.length) {
        return;
    }
    arr2.push(arr1[begin]);
    combineRecursion(arr1, begin + 1, number - 1, arr2, arr3);
    arr2.remove(arr1[begin]);
    combineRecursion(arr1, begin + 1, number, arr2, arr3);
}

/* 去掉字符串中的所有空格 */
function trimAll(str,is_global)
{
    var result;
    result = str.replace(/(^\s+)|(\s+$)/g,"");
    if(is_global.toLowerCase()=="g")
    {
        result = result.replace(/\s/g,"");
    }
    return result;
}

/* 初始化数组 */
function initArr(length, val) {
    var arr = [];
    for(var i = 0 ; i < length; i++){
        arr.push(val);
    }
    return arr;
}




 

分享到:
评论

相关推荐

    js工具类 使用说明方法介绍同步博客

    在本篇中,我们将深入探讨“js工具类”的使用方法,并结合“bee.js”与“bee.min.js”这两个文件进行说明。 首先,“bee.js”和“bee.min.js”都是JavaScript工具类库的实现。其中,“bee.min.js”是经过压缩和优化...

    JS工具类

    JavaScript(简称JS)工具类是开发过程中不可或缺的一部分,它们提供了一系列通用的方法,帮助开发者更高效地处理各种编程任务。在给定的“JS工具类”主题中,我们重点关注了一个名为`FloatArithUtil.js`的文件,这...

    javascript后台调用的工具类

    "javascript.cs" 这个文件名暗示了这是一个用C#编写的JavaScript工具类。C#是一种面向对象的编程语言,常用于构建Windows应用程序和服务器端应用程序,包括ASP.NET Web应用。通过C#,开发者可以创建JavaScript库或...

    非常不错的js工具类

    该js工具类包含项目常用的字符长度判断,日期处理,数据类型和有效性的检验,以及各种可以直接用于项目的工具。

    three.js工具类

    ### three.js工具类知识点 #### 一、Three.js概述与模型加载 - **Three.js**:是一个基于WebGL的3D库,它简化了复杂的3D图形编程,并提供了丰富的API来帮助开发者创建交互式的3D应用程序。 - **模型加载**:在本...

    js工具类 弹窗

    在JavaScript编程中,工具...通过以上讨论,我们可以看出"js工具类 弹窗"是一个涉及HTML结构设计、CSS样式定制和JavaScript事件处理的综合实践。将弹窗功能封装为工具类,有助于提升代码的可重用性和项目整体的组织性。

    银行卡号正则校验js工具类

    银行卡号正则校验js工具类

    封装js工具类

    ### 封装JS工具类 #### 1. Echo 方法 该方法的功能是向客户端输出指定的消息。 ```csharp public static void Echo(string msg) { HttpContext.Current.Response.Write(msg); } ``` 通过`HttpContext.Current....

    加密js工具类:base64,md5,sha1

    这里我们将深入探讨这些工具类在JavaScript中的应用。 **Base64**是一种用于在网络上传输二进制数据的编码方式。它将任意可打印字符转换为一个长度为4的字符序列,每个字符来自"ASCII可打印字符"集合,包括'0'-'9'...

    qrcode的javascript工具类

    JS生成QrCode的工具类,微信支付宝等支付URL可以用这个

    前端javascript工具类

    里面是一些我常用的js工具类,以对象形式添加。包含了ES6语法,可修改。绝大部分有方法介绍。并不是特别全面,有需要的或者有什么好的方法可以告诉我,让我也学习一下。

    JS(javascript)-md5加密工具类

    JavaScript中的MD5加密工具类是用于对数据进行安全哈希的一种方法,广泛应用于密码存储、数据完整性校验等场景。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的输入转化为固定长度的...

    JavaScript工具类函数库

    本资源是一个精心编写的JavaScript工具类函数库,包含了多种实用的日期处理、数值计算、字符串操作等工具函数。它提供了如日期格式化、天数判断、数组处理等功能,适用于前端开发中的各种场景。函数库采用ES6模块化...

    真实项目中用到的javascript工具类

    真实项目中用到的javascript工具类,真实项目中用到的javascript工具类

    MD5.js工具类

    MD5.js工具类是用于处理MD5加密的JavaScript库,主要应用于前端开发或者任何需要在浏览器环境中进行数据安全处理的场景。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,能够将任意长度的数据转化为...

    自定义javascript 工具类

    自定义javascript 工具类

    dateUtil js工具类

    dateUtil js工具类

    mapUtil js工具类

    mapUtil js工具类

    OpenLayers 画点、线、及删除点、线 封装的js工具类

    在这个"OpenLayers 画点、线、及删除点、线 封装的js工具类"中,我们可以找到一系列实用的功能,方便开发者快速实现地图上的绘图和编辑操作。 首先,让我们详细了解如何在OpenLayers中绘制点和线: 1. **绘制点**...

    easyUI开发时常用的超牛javascript工具类

    easyUI开发时常用的超牛javascript工具类

Global site tag (gtag.js) - Google Analytics