专栏名称: JavaScript
面向JavaScript爱好人员提供:前端最新资讯、原创内容、JavaScript、HTML5、Ajax、jQuery、Node.js等一系列教程和经验分享。
目录
相关文章推荐
51好读  ›  专栏  ›  JavaScript

编写自己的代码库(javascript常用实例的实现与封装)

JavaScript  · 公众号  · Javascript  · 2017-07-31 11:29

正文

请到「今天看啥」查看全文


}

}

2-7检测密码强度

//checkPwd('12asdASAD')

//3(强度等级为3)

function checkPwd(str) {

   var nowLv = 0;

   if (str.length < 6) {

       return nowLv

   }

   ;

   if (/[0-9]/.test(str)) {

       nowLv++

   }

   ;

   if (/[a-z]/.test(str)) {

       nowLv++

   }

   ;

   if (/[A-Z]/.test(str)) {

       nowLv++

   }

   ;

   if (/[\.|-|_]/.test(str)) {

       nowLv++

   }

   ;

   return nowLv;

}

2-8随机码(toString详解)

//count取值范围0-36

//randomNumber(10)

//"2584316588472575"

//randomNumber(14)

//"9b405070dd00122640c192caab84537"

//Math.random().toString(36).substring(2);

//"83vhdx10rmjkyb9"

function randomNumber(count){

  return Math.random().toString(count).substring(2);

}

2-9查找字符串

可能标题会有点误导,下面我就简单说明一个需求,在字符串 'sad44654blog5a1sd67as9dablog4s5d16zxc4sdweasjkblogwqepaskdkblogahseiuadbhjcibloguyeajzxkcabloguyiwezxc967'中找出'blog' 的出现次数。代码如下

function countStr (str,strSplit){

   return str.split(strSplit).length-1

}

var strTest='sad44654blog5a1sd67as9dablog4s5d16zxc4sdweasjkblogwqepaskdkblogahseiuadbhjcibloguyeajzxkcabloguyiwezxc967'

//countStr(strTest,'blog')

//6

3.数组操作

3-1数组去重

这个方法是在太多了,我之前写的文章(js数组操作–使用迭代方法替代for循环,js关键词变色,数组打乱,数组去重的实现和封装)也有提到,我今天这里就写一种之前没用过的方法。

//ES6新增的Set数据结构,类似于数组,但是里面的元素都是唯一的 ,其构造函数可以接受一个数组作为参数

//let arr=[1,2,1,2,6,3,5,69,66,7,2,1,4,3,6,8,9663,8]

//let set = new Set(array);

//{1,2,6,3,5,69,66,7,4,8,9663}

//ES6中Array新增了一个静态方法from,可以把类似数组的对象转换为数组

//Array.from(set)

//[1,2,6,3,5,69,66,7,4,8,9663]

function removeRepeatArray(arr){

   return Array.from(new Set(arr))

}

3-2数组顺序打乱

function upsetArr(arr){

   return arr.sort(function(){ return Math.random() - 0.5});

}

3-3数组最大值最小值

//这一块的封装,主要是针对数字类型的数组

function maxArr(arr){

   return Math.max.apply(null,arr);

}

function minArr(arr){

   return Math.min.apply(null,arr);

}

3-4数组求和,平均值

//这一块的封装,主要是针对数字类型的数组

//求和

function sumArr(arr){

   var sumText=0;

   for(var i=0,len=arr.length;i

       sumText+=arr[i];

   }

   return sumText

}

//平均值,小数点可能会有很多位,这里不做处理,处理了使用就不灵活了!

function covArr(arr){

   var sumText=sumArr(arr);

   var covText=sumText/length;

   return covText

}

3-5从数组中随机获取元素

//randomOne([1,2,3,6,8,5,4,2,6])

//2

//randomOne([1,2,3,6,8,5,4,2,6])

//8

//randomOne([1,2,3,6,8,5,4,2,6])

//8

//randomOne([1,2,3,6,8,5,4,2,6])

//1

function randomOne(arr) {

   return arr[Math.floor(Math.random() * arr.length)];

}

3-6返回数组(字符串)一个元素出现的次数

//getEleCount('asd56+asdasdwqe','a')

//3

//getEleCount([1,2,3,4,5,66,77,22,55,22],22)

//2

function getEleCount (obj, ele) {

   var num = 0;

   for (var i = 0, len = obj.length; i < len; i++) {

       if (ele == obj[i]) {

           num++;

       }

   }

   return num;

}

3-7返回数组(字符串)出现最多的几次元素和出现次数

//arr, rank->长度,默认为数组长度,ranktype,排序方式,默认降序

function getCount(arr, rank,ranktype){

   var obj = {}, k, arr1 = []

   //记录每一元素出现的次数

   for (var i = 0, len = arr.length; i < len; i++) {

       k = arr[i];

       if (obj[k]) {

           obj[k]++;

       }

       else {

           obj[k] = 1;

       }

   }

   //保存结果{el-'元素',count-出现次数}

   for (var o in obj) {

       arr1.push({el: o, count: obj[o]});

   }

   //排序(降序)

   arr1.sort(function (n1, n2) {







请到「今天看啥」查看全文