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
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/263000.html
標籤:其他
上一篇:[HNOI2003]激光炸彈
