1、获取指定范畴内的随机数
function getRadomNum(min,max){ return Math.floor(Math.random() * (max - min + 1)) + min;}
2、验证是否为数组
function isArray(obj) { return Object.prototype.toString.call(obj) === '[object Array]';}
3、统计字符串中次数最多字母
function findMaxDuplicateChar(str) { if(str.length == 1) { return str; } var charObj = {}; for(var i = 0; i < str.length; i++) { if(!charObj[str.charAt(i)]) { charObj[str.charAt(i)] = 1; } else { charObj[str.charAt(i)] += 1; } } var maxChar = '', maxValue = 1; for(var k in charObj) { if(charObj[k] >= maxValue) { maxChar = k; maxValue = charObj[k]; } } return maxChar + ':' + maxValue;}
一、阶乘
非递归实现
function factorialize(num) { var result = 1; if(num < 0) return -1; if(num == 0 || num == 1) return 1; while(num>1) { result *= num--; } return result;}
递归实现
function factorialize(num) { var result = 1; if(num < 0) return -1; if(num == 0 || num == 1) return 1; if(num > 1) return num*factorialize(num-1);}
一、简略一维数组的去重:
办法一:双层循环去重
function uniqueArr(arr) { var result = []; for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (arr[i] === arr[j]) { j = ++i; } } result.push(arr[i]); } return result;}
办法二:利用对象的属性不能雷同去重
function uniqueArr(arr) { var result = []; var obj = {}; for (var i = 0; i < arr.length; i++) { if (!obj[arr[i]]) { obj[arr[i]] = 1; result.push(arr[i]); } } return result;}
办法三:利用下标
function uniqueArr(arr) { var result = [arr[0]]; for (var i = 1; i < arr.length; i++) { if (result.indexOf(arr[i]) == -1) { result.push(arr[i]); } } return result;}
办法四:ES6去重
function uniqueArr(arr) { return Array.from(new Set(arr));}
二、蕴含对象的二维数组去重:
办法一:双重循环去除法
function uniqueArr(arr, key) { var newArr = []; for (var i = 0; i < arr.length; i++) { var flag = true; for (var j = 0; j < newArr.length; j++) { if (arr[i][key] == newArr[j][key]) { flag = false; } } if (flag) newArr.push(arr[i]); } return newArr;}
办法二:利用reduce来实现
function uniqueArr(arr, key) { var hash = {}; return arr.reduce(function(item, next) { hash[next[key]] ? '' : hash[next[key]] = true && item.push(next); return item }, []);}