首页 > 代码库 > js开发中常用技巧

js开发中常用技巧

来自:http://www.cnblogs.com/jone-chen/p/5897829.html
1、获取指定范围内的随机数 1 2 3 function getRadomNum(min,max){ return Math.floor(Math.random() * (max - min + 1)) + min; } 2、随机获取数组中的元素 1 2 3 4 function getRadomFromArr(arr){ return arr[Math.floor(Math.random()*arr.length)]; } 3、生成从0到指定值的数字数组 1 2 3 4 5 function getArray(len) { var arr = [],i = 1; for (; arr.push(i++) < len;); console.log(arr) } 等同于: 1 2 3 4 5 6 7 function getArray(len) { var arr = [],i = 1; for (; i < len; i++) { arr.push(i) } console.log(arr) } 4、打乱数字数组的顺序 1 2 3 4 var arr = [1, 2, 3, 4, 5, 6, 7, ‘a‘, ‘dsfs‘, 8, 9, ‘v‘]; arr.sort(function() { return Math.random() - 0.5 }); 5、对象转换为数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 //注意对象必须是以下格式的才可以通过此方式转化为数组 //获取的DOM集合,以及函数的arguments也可以通过此方式转化为数组 var obj = { 0: ‘qian‘, 1: ‘long‘, 2: ‘chu‘, 3: ‘tian‘, length: 4 } var objArr = Array.prototype.slice.call(obj); // var objArr = [].slice.call(obj); // var objArr = Array.prototype.slice.apply(obj); console.log(objArr) 6、验证是否为数组 1 2 3 function isArray(obj) { return Object.prototype.toString.call(obj) === ‘[object Array]‘; } 7、获取数组中最大或者最小值 1 2 3 4 5 6 function maxAndMin(arr){ return { max:Math.max.apply(null,arr.join(‘,‘).split(‘,‘)), min:Math.min.apply(null,arr.join(‘,‘).split(‘,‘)) } } 8、清空数组 1 2 3 4 5 6 7 8 9 10 11 //方式一 通过将长度设置为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、保留指定小数位 1 2 var num =4.345678; num = num.toFixed(4); // 4.3457 第四位小数位以四舍五入计算 10、生成指定长度的随机字母数字字符串 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 // 生成指定长度的随机字母数字字符串 /*写法一 function getRandomStr(len) { var str = ""; for (; str.length < len; str += Math.random().toString(36).substr(2)); return str.substr(0, len); } 写法二 function getRandomStr(len) { var str = ""; for (; str.length < len;) { str += Math.random().toString(36).substr(2); } return str.substr(0, len); }*/ /*写法三*/ function getRandomStr(len) { for (var str = ‘‘; str.length < len; str += Math.random().toString(36).substr(2)); return str.substr(0, len) } 11、找出数组中出现次数最的元素,并给出其出现过的位置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 } }

  

js开发中常用技巧