幾個js開發(fā)過程中的小技巧

前言

javascript是一門非常靈活的語言,實際的開發(fā)過程中我們也可以靈活的使用它而給我們的工作帶來便利,這篇文章記錄了自己平時學(xué)習(xí)過程中經(jīng)常用到的一些小技巧,整理出來作為筆記,也希望對感興趣的同學(xué)有所幫助。( 持續(xù)更新… )

1.獲取指定范圍內(nèi)的隨機(jī)數(shù)

當(dāng)我們需要獲取指定范圍(min,max)內(nèi)的整數(shù)的時候,下面的代碼非常適合。

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

2.隨機(jī)獲取數(shù)組中的元素

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

3.生成從0到指定值的數(shù)字?jǐn)?shù)組

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

4.打亂數(shù)字?jǐn)?shù)組的順序

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

5.對象轉(zhuǎn)換為數(shù)組

//注意對象必須是以下格式的才可以通過此方式轉(zhuǎn)化為數(shù)組
//獲取的DOM集合,以及函數(shù)的arguments也可以通過此方式轉(zhuǎn)化為數(shù)組
var obj={
        0:'qian',
        1:'long',
        2:'chu',
        3:'tian',
        length:4
}
var _slice=[].slice;
var objArr=_slice.call(obj);
測試
測試
測試

6.驗證是否為數(shù)組

function isArray(obj){
    return Object.prototype.toString.call(obj) === '[object Array]' ;
}
測試

7.獲取數(shù)組中最大或者最小值

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

該方法適合一維或者多維數(shù)組求最大最小值的情況

測試

8 清空數(shù)組

//方式一 通過將長度設(shè)置為0
var arr=[1,2,3,4,5];
arr.length=0;

//方式二 通過splice方法
var arr=[1,2,3,4,5];
arr.splice(0,arr.length);

//方式三 通過將空數(shù)組 [] 賦值給數(shù)組(嚴(yán)格意義來說這只是將ary重新賦值為空數(shù)組,之前的數(shù)組如果沒有引用在指向它將等待垃圾回收。)
var arr=[1,2,3,4,5];
arr=[];

9.保留指定小數(shù)位

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

10.不要直接使用delete來刪除數(shù)組中的元素

數(shù)組在js中也是對象,有時候我們可能會通過delete來刪除數(shù)組中的元素,但是其實僅僅是將數(shù)組的元素的值賦值為了undefined。

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


可以通過splice來刪除數(shù)組中的某一項

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

11.生成指定長度的隨機(jī)字母數(shù)字字符串

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,有時候我們?yōu)榱伺懦齨ull 和 undefined可以使用如下的代碼

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

13.找出數(shù)組中出現(xiàn)次數(shù)最的元素,并給出其出現(xiàn)過的位置

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;//記錄出現(xiàn)次數(shù)最大值
var str='';//記錄出現(xiàn)次數(shù)最多的字符
var reArr;//返回最大值的位置數(shù)組
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
}
}
測試結(jié)果

轉(zhuǎn)載自https://qianlongo.github.io/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 第三章 類型、值和變量 1、存取字符串、數(shù)字或布爾值的屬性時創(chuàng)建的臨時對象稱做包裝對象,它只是偶爾用來區(qū)分字符串值...
    坤少卡卡閱讀 722評論 0 1
  • 今天看了《圓桌派》,反派:怎么演“壞”人? 非常觸動的一句話:束縛是自由。 沒有束縛就沒有自由。...
    psychology凡心閱讀 288評論 0 6
  • 我敢說焦慮是現(xiàn)在年輕人最普遍的精神狀態(tài)了吧。這份工作有價值嗎?這個公司前景會好嗎?物價這么高,我什么時候能在這個買...
    方不易閱讀 448評論 4 4

友情鏈接更多精彩內(nèi)容