1.JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
<script type="text/javascript">
var str = 'qwertyuilo.,mnbvcsarrrrrrrrtyuiop;l,mhgfdqrtyuio;.cvxsrtyiuo';
var json = {};
//遍历str拆解其中的每一个字符将其某个字符的值及出现的个数拿出来作为json的kv
for (var i = 0; i < str.length; i++) {
//判断json中是否有当前str的值
if (!json[str.charAt(i)]) {
//如果不存在 就将当前值添加到json中去
json[str.charAt(i)] = 1;
} else {
//else的话就让数组中已有的当前值的index值++;
json[str.charAt(i)]++;
}
}
//存储出现次数最多的值和次数
var number = '';
var num=0;
//遍历json 使用打擂算法统计需要的值
for (var i in json) {
//如果当前项大于下一项
if (json[i]>num) {
//就让当前值更改为出现最多次数的值
num = json[i];
number = i;
}
}
//最终打印出现最多的值以及出现的次数
alert('出现最多的值是'+number+'出现次数为'+num);
</script>
2.快速排序算法
var quickSort = function(arr) {
if (arr.length <= 1) {//如果数组长度小于等于1无需判断直接返回即可
return arr;
}
var pivotIndex = Math.floor(arr.length / 2);//取基准点
var pivot = arr.splice(pivotIndex, 1)[0];//取基准点的值,splice(index,1)函数可以返回数组中被删除的那个数
var left = [];//存放比基准点小的数组
var right = [];//存放比基准点大的数组
for (var i = 0; i < arr.length; i++){ //遍历数组,进行判断分配
if (arr[i] < pivot) {
left.push(arr[i]);//比基准点小的放在左边数组
} else {
right.push(arr[i]);//比基准点大的放在右边数组
}
}
//递归执行以上操作,对左右两个数组进行操作,直到数组长度为<=1;
return quickSort(left).concat([pivot], quickSort(right));
};
Math.floor(x) //返回小于等于x的最大整数: