幾個js開發過程當中的小技巧

前言

javascript是一門很是靈活的語言,實際的開發過程當中咱們也能夠靈活的使用它而給咱們的工做帶來便利,這篇文章記錄了本身平時學習過程當中常常用到的一些小技巧,整理出來做爲筆記,也但願對感興趣的同窗有所幫助。javascript

1 獲取指定範圍內的隨機數

當咱們須要獲取指定範圍(min,max)內的整數的時候,下面的代碼很是適合。java

function getRadomNum(min,max){
    return  Math.floor(Math.random() * (max - min + 1)) + min;
}

測試
圖片描述數組

2 隨機獲取數組中的元素

function getRadomFromArr(arr){
    return arr[Math.floor(Math.random()*arr.length)];
}

測試
圖片描述app

3 生成從0到指定值的數字數組

var arr=[],length=100,i=1;
for(;arr.push(i++)<length;){}
console.log(arr)

測試
圖片描述dom

4 打亂數字數組的順序

var arr=[1,2,3,4,5,6,7,'a','dsfs',8,9,'v'];
    arr.sort(function(){return Math.random()-0.5});

測試
圖片描述函數

5 對象轉換爲數組

//注意對象必須是如下格式的才能夠經過此方式轉化爲數組
//獲取的DOM集合,以及函數的arguments也能夠經過此方式轉化爲數組
var obj={
    0:'qian',
    1:'long',
    2:'chu',
    3:'tian',
    length:4
}
var _slice=[].slice;
var objArr=_slice.call(obj);

測試
圖片描述學習

6 驗證是否爲數組

function isArray(obj){測試

return  Object.prototype.toString.call(obj) === '[object Array]' ;

}
測試
圖片描述spa

7 獲取數組中最大或者最小值

function maxAndMin(arr){
    return {
       max:Math.max.apply(null,arr.join(',').split(',')),
       min:Math.min.apply(null,arr.join(',').split(','))
    }
}

該方法適合一維或者多維數組求最大最小值的狀況prototype

測試
圖片描述

8 清空數組

//方式一 經過將長度設置爲0
    var arr=[1,2,3,4,5];
    arr.length=0;
    
    //方式二 經過splice方法
     var arr=[1,2,3,4,5];
    arr.splice(0,arr.length);
    
    //方式三 經過將空數組 [] 賦值給數組(嚴格意義來講這只是將ary從新賦值爲空數組,以前的數組若是沒有引用在指向它將等待垃圾回收。)
    var arr=[1,2,3,4,5];
    arr=[];

9 保留指定小數位

var num =4.345678;
num = num.toFixed(4);  // 4.3457 第四位小數位以四捨五入計算

10 不要直接使用delete來刪除數組中的元素

數組在js中也是對象,有時候咱們可能會經過delete來刪除數組中的元素,可是其實僅僅是將數組的元素的值賦值爲了undefined。

var arr=[1,2,3,4,5,'謙龍','雛田'];
    delete arr[5];
    console.log(arr,arr[5],arr.length);

測試

圖片描述

能夠經過splice來刪除數組中的某一項

var arr=[1,2,3,4,5,'謙龍','雛田'];
    arr.splice(5,1);
    console.log(arr,arr[5],arr.length);

測試

圖片描述

11 生成指定長度的隨機字母數字字符串

function getRandomStr(len) {
    var str = "";
    for( ; str.length < len; str  += Math.random().toString(36).substr(2));
    return  str.substr(0, len);
}

測試
圖片描述

12 null 與 undefined

null == undefined,null == null 返回true,有時候咱們爲了排除null 和 undefined能夠使用以下的代碼

function test(obj){
        if(obj!=null){// obj除了undefined 和 null 以外都會走這裏
            ....這裏寫代碼邏輯
        }
    }

13 找出數組中出現次數最的元素,並給出其出現過的位置

function getMaxAndIndex( arr ){
        var obj = {};
        arr.forEach(function(item,index){
            if(!obj[item]){
                obj[item]= {indexs: [index]}
            }else{
                obj[item]['indexs'].push(index);
            }
        });
        var num=0;//記錄出現次數最大值
        var str='';//記錄出現次數最多的字符
        var reArr;//返回最大值的位置數組
        for(var attr in obj){
            var temp=obj[attr]['indexs'];
            if(temp.length>num){
                num=temp.length;
                str=attr;
                reArr=temp;
            }
        }
        return {
            maxStr:str,
            indexs:reArr
        }
    }

測試結果
圖片描述

相關文章
相關標籤/搜索