1、获取指定范围内的随机数
/*
获取min~max之间的随机整数
*/
function getRandomNum(min,max){
return Math.floor(Math.random()*(max-min+1))+min;
}
2、随机获取数组中的元素
/*
随机获取数组中的某一个元素
*/
function getRandomFromArr(arr){
return arr[Math.floor(Math.random()*arr.length)];
}
3、打乱数组的顺序
/*
打乱数组的顺序
*/
function getRandomArr(arr){
// var resArr = [...arr]; // ES6标准
var resArr = Array.from(arr);
return resArr.sort(function(){
return Math.random() - 0.5;
});
}
4、对象转换成数组(前提条件:该对象必须包含属性length)
/*
对象转成数组 (参数obj是一个对象类型数组且obj.hasOwnProperty('length')为true)
*/
function getObjToggleArr1(obj){
return Array.prototype.slice.call(obj); // 第一种
}
function getObjToggleArr2(obj){
return [].slice.call(obj); // 第二种
}
function getObjToggleArr3(obj){
return Array.prototype.apply.call(obj); // 第三种
}
/*
对象转成数组 (参数obj是一个对象类型数组)只作为理解
*/
function getObjToggleArr(obj){
var copyObj = Object.assign({},obj); // 另外复制一份obj(浅拷贝)
if(!copyObj.hasOwnProperty('length')){
copyObj['length']=Object.keys(obj).length;
}
return [].slice.call(copyObj);
}
5、获取数组中的最大值和最小值
/*
获取数组中的最大值和最小值
*/
function maxAndMin(arr){
return {
max:Math.max.apply(null,arr.join(',').split(',')),
min:Math.min.apply(null,arr.join(',').split(','))
}
}
6、生成指定长度的随机字母数字字符串
function getRandomStr(len) {
for (var str = ''; str.length < len; str += Math.random().toString(36).substr(2));
return str.substr(0, len)
}
7、找出数组中出现次数最多的元素,并给出其出现过的位置
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
}
}