媒介
javascript是一门异常天真的言语,现实的开辟过程当中我们也能够天真的运用它而给我们的事情带来方便,这篇文章纪录了本身日常平凡进修过程当中常常用到的一些小技能,整理出来作为笔记,也愿望对感兴趣的同砚有所协助。
1 猎取指定局限内的随机数
当我们须要猎取指定局限(min,max)内的整数的时刻,下面的代码异常合适。
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)];
}
测试
3 天生从0到指定值的数字数组
var arr=[],length=100,i=1;
for(;arr.push(i++)<length;){}
console.log(arr)
测试
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]' ;
}
测试
7 猎取数组中最大或许最小值
function maxAndMin(arr){
return {
max:Math.max.apply(null,arr.join(',').split(',')),
min:Math.min.apply(null,arr.join(',').split(','))
}
}
该要领合适一维或许多维数组求最大最小值的状况
测试
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
}
}
测试效果