前言
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
}
}








