Js工具类
常用方法整理如下:
/* 随机排序 */ function randomSort() { return Math.random() > .5 ? -1 : 1; } /* 生成随机数组 */ function randomArr(sourceArr, length, zeroFlag) { var targetArr = []; var arrTemp1 = sourceArr.concat(); var arrTemp2 = sourceArr.concat(); for(var i = 0; i < length; i ++) { var index = 0; if(zeroFlag) { index = randomArrVal(arrTemp1); } else { index = randomArrVal(arrTemp1) - 1; } targetArr.push(arrTemp2[index]); } return targetArr.sort(); } /* 取指定数组中不重复的随机数 */ function randomArrVal(sourceArray) { //在数组中产生一个随机索引 var arrIndex = Math.floor(Math.random() * sourceArray.length); var arrValue = parseInt(sourceArray[arrIndex]); sourceArray.splice(arrIndex, 1); return arrValue; } /* 重构数组,使其可以删除指定元素 */ Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) return i; } return -1; }; Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } } /* 重构数组,增加判断数组是否包含某个元素的方法 */ Array.prototype.in_array = function(e) { for(var i = 0; i < this.length; i++) { if(this[i] == e) return true; } return false; } /* 排列算总数,n为上值,m为下值 */ function permutation(n, m) { var front = 1; for(var i = 0 ; i < n; i++){ front = front * (m - i); } return front; } /* 组合算总数,n为上值,m为下值 */ function combination(n, m){ var front = 1; for(var i = 0 ; i < n; i++){ front = front * (m - i); } var back = 1; for(var i = 1; i <= n; i++){ back = back * i; } return front/back; } /* 组合拆分 */ function combinationSplit(sourceArr, count) { var result = []; if(null != sourceArr && sourceArr.length >= count && count >0 ){ var tempArr = []; combineRecursion(sourceArr, 0, count, tempArr, result); } return result; } /* 递归求组合 */ function combineRecursion(arr1, begin, number, arr2, arr3) { if(number == 0) { var tempArr = arr2.concat() arr3.push(tempArr); return; } if(begin == arr1.length) { return; } arr2.push(arr1[begin]); combineRecursion(arr1, begin + 1, number - 1, arr2, arr3); arr2.remove(arr1[begin]); combineRecursion(arr1, begin + 1, number, arr2, arr3); } /* 去掉字符串中的所有空格 */ function trimAll(str,is_global) { var result; result = str.replace(/(^\s+)|(\s+$)/g,""); if(is_global.toLowerCase()=="g") { result = result.replace(/\s/g,""); } return result; } /* 初始化数组 */ function initArr(length, val) { var arr = []; for(var i = 0 ; i < length; i++){ arr.push(val); } return arr; }