1.对象转换为数组
var obj={
0:'我',
1:'的',
2:'妈',
3:'呀',
length:4
}
//obj格式必须是类似数组的格式(键值是索引,具有length属性)
var _slice=[].slice;
var objArr=_slice.call(obj);
2.统计一个字符串出现最多的字母
function countMost(str) {
const objCount = {};
str = str.split('').sort().join('');
for(let i=0; i<str.length; i++) {
let lastIndex = str.lastIndexOf(str[i]);
num = lastIndex - i + 1;
objCount[str[i]] = num;
i = lastIndex;
}
let maxStr = [],
maxValue = 1;
for(let p in objCount) {
if(objCount[p] > maxValue) {
maxStr = [];
maxStr.push(p);
maxValue = objCount[p];
}else if(objCount[p] == maxValue){
maxStr.push(p);
}
}
return maxStr.length == 1? maxStr[0] : maxStr;
}
console.log(countMost('afjghdfffffraaaasdddddenas'));
3.找出下列正数组的最大差值
const arr = [10,5,11,7,8,9];
function getMaxProfit(arr) {
let max = arr[0],
min = arr[0];
for(let i=1; i<arr.length; i++) {
max = Math.max(max,arr[i]);
min = Math.min(min,arr[i]);
}
return max - min;
}
console.log(getMaxProfit(arr));
4.获取数组中最大或者最小值
function maxAndMin(arr){
return {
max:Math.max.apply(null,arr.join(',').split(',')),
min:Math.min.apply(null,arr.join(',').split(','))
}
}
var arr = [22,0,[3,4,2,55]];
maxAndMin(arr).max;// 55
maxAndMin(arr).min;// 0
5.生成指定长度的随机字母数字字符串
function getRandomStr(len) {
var str = "";
for( ; str.length < len; str += Math.random().toString(36).substr(2));
return str.substr(0, len);
}