1. 程式人生 > >簡單整理常見對數組字符串操作的封裝

簡單整理常見對數組字符串操作的封裝

元素 .get wds 小寫 大寫 func 顏色 ply +=

.移除數組 arr 中的所有值與 item 相等的元素。不要直接修改數組 arr,結果返回新的數組
console.log(move([2,3,4,5,6,11,1,1,1,1,1,1,4,5,6],1))
function move(arr,item) {
return arr.filter(function (arr) {
return arr !== item
})
}
查找數字類數組中最大值
    console.log(maxArr([1,2,3,4,5]))
function maxArr(arr) {
return Math.max.apply(null,arr)
}
查找數字類數組中最小值
    console.log(maxArr([1,2,3,4,5]))
function minArr(arr) {
return Math.max.apply(null,arr)
}

獲取數組的隨機一個數
        console.log(randomOne([1,2,3,4,5,6]))
function randomOne(arr) {
return arr[Math.floor(Math.random()*arr.length)];
}

/*
1:首字母大寫
2:首字母小寫
3:大小轉換需要均勻分布兩端
4:全部大寫
5:全部大寫
*/
function changeCase(str, type) {
switch (type){
case 1: return str.replace(/^(\w)(\w+)/,function (v,v1,v2,v3) {
console.log(v)//被匹配的數組
console.log(v1)//是第一個捕獲組
console.log(v2)//是第二個捕獲組
console.log(v3)//第一個被匹配的index
return v1.toUpperCase() + v2.toLowerCase();
});
case 2:return str.replace(/^(\w)(\w+)/,function (v,v1,v2,v3) {
console.log(v)//被匹配的數組
console.log(v1)//是第一個捕獲組
console.log(v2)//是第二個捕獲組
console.log(v3)//第一個被匹配的index
return v1.toLowerCase() + v2.toUpperCase();
});
case 3:return str.replace(/^([a-z]+)([A-Z]+)/,function (v,v1,v2,v3) {
console.log(v)//被匹配的數組
console.log(v1)//是第一個捕獲組
console.log(v2)//是第二個捕獲組
console.log(v3)//第一個被匹配的index
return v1.toUpperCase() + v2.toLowerCase();
});
case 4: return str.toUpperCase();
case 5: return str.toLowerCase();
}
}
console.log(changeCase("qweqweWEWREWDSFGDJJ",3))

////字符串循環復制
function repeatStr(str,count) {
var text= "";
for(var i=0;i<count;i++){
text +=str
}
return text;
}
//////檢測字符串
function checkType(str,type) {
switch(type){
case "email":
return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str);
case "phone":
return /^1[3|4|5|7|8][0-9]{9}$/.test(str);
case "tel":
return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str);
case "numer":
return /[^0-9]$/.test(str);
case "numerAll":
return /[0-9]$/.test(str);
case "english":
return /^[a-zA-Z]+$/.test(str);
case "chinese":
return /^[\u4E00-\u9FA5]+$/.test(str);
case "lower":
return /^[a-z]+$/.test(str);
case "upper":
return /^[A-Z]+$/.test(str);

}
}


///檢測密碼強度
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
}
////Math.random()輸出0到1(包括0,不包含1)的隨機數。

toString(16)將隨機數轉換為16進制的字符串。
substring(2)截取字符串,因為隨機數大於等於0小於1,前兩位是“0.”,substring(2)從第三位開始截取到最後。

function randomNumber(count) {
return Math.random().toString(count).substring(5);
}

///查找字符串出現重復的字符串返回次數
function countStr(str,strSplit) {
return str.split(strSplit).length-1;

}
/////////ES6簡便的去重的方法
function removeRepeatArray(arr) {
return Array.from(new Set(arr))
}
    //返回數組(字符串)一個元素出現的次數
function getEleCount(obj,ele){
var num=0;
for(var i=0,len=obj.length;i<len;i++){
if (obj[i] ===ele){
num++
}
}
}

///////返回數組出現的元素和次數
rank是最後排好序列展示的個數,ranktype為1 生序顯示
function getCount(arr,rank,ranktype) {
var obj={},k,arr1=[];
//記錄每一元素出現的次數
for(var i=0,len=arr.length;i<len;i++){
k=arr[i];
console.log(obj[k])
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) {
return n2.count - n1.count
})
//如果ranktype為1則為生序,反轉數據
if (ranktype===1){
arr1=arr1.reverse();
}
var rank1=rank || arr1.length;
return arr1.slice(0,rank1)

}

//檢測對象是否有哪個類名
// /\s+/ 匹配任何空白符,包括\n,\r,\f,\t,\v等(換行、回車、空格、tab等)


var ww=document.getElementsByClassName(‘qq‘)
function hasClass(obj,calssStr) {
//把字符串轉換成數組
var arr=obj.className.split(/\s+/);
console.log(arr)
return (arr.indexOf(calssStr)==-1)?false:true
}
//隨機生成顏色
function randomColor(){

return "rgba(" + randomNumber(255) + ‘,‘ + randomNumber(255) + "," + randomNumber(255);
}

簡單整理常見對數組字符串操作的封裝