JS開発における実用技術
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
}
}