<script>
//重复数
var str = "abbbccccdddddddddfdsgfdwersddfdasderweasddmmmmmmmmmmmmmmmm"
function MaxImumRepeat(string) {
var obj = {}, //用于放置数组每项内容
num = 0, //用于承接数量
objContent = ''//用于承接对象中的内容
for (var i in string) {
// obj[string[i]] ? obj[string[i]] += 1 : obj[string[i]] = 1
if (obj[string[i]]) { //判断这个对象中有没有这一项,如果没有输出false,如果有输出的是true
obj[string[i]] += 1; //输出true时说明原对象中已经有这个值了,再到找时个数就要+1
} else {
obj[string[i]] = 1 //如果在对象中没有找到这一项,就写入这一项,数量为1,当字符串中还有这一项时,找到后对象中已存在此项,所以执行的是上面的操作
}
for (var j in obj) { //把字符串中的每一项都放置在对象中后,需要比较每一项有多少个,就要遍历对象中的每一项,并找到个数比较
if (obj[j] > num) { //num初始值是0 ,如果遍历过程中,有数量大于num的时候,就把这个数量从新赋给num
num = obj[j] //一旦找到比它大的就重新赋值,以此来找最大数
objContent = j //这个时候出现的就是出现最多的项是j,把j赋值给用于承接对象内容的变量中
}
}
}
return '出现最多的是:' + objContent + '出现的次数是:' + num //返回结果
}
document.write(MaxImumRepeat(str)) //调用
// 判断质数
function isZhishu(n) {
if (n <= 1) { //当n小于等于1的话,直接返回false。
return false;
}
for (i = 2; i < n; i++) {
if (n % i == 0) { // 如果i能被n整除,那么n就不是一个质数。
return false; // 就返回false;
}
}
return true; // i不能被n整除,那能整除的就1和n自己本身的话,那这个数就是质数。 返回为true。
}
console.log(isZhishu());
function zhiNum(n, m) {
var arr = []; //创建一个空数组来接收质数
for (j = 0; j < m; j++) { //遍历传进来的范围内的每一个数
if (isZhishu(j)) { //先判断范围内的数是不是质数,
arr.push(j) //如果是质数,则依次放入空数组中
}
}
return arr; //返回接受质数的那个空数组
}
console.log(zhiNum(1, 100));
//快速排序
var arr = [1, 323, 43, 67, 98, 909, 100, 33, 33, 45, 76]; //数组
function quicklySort(list) {
if (list.length < 1) { // 如果数组的长度小于1的话,就会重复返回list。
return list;
}
var center = Math.floor(list.length / 2); //找到他中间数的坐标。
var centerIndex = list.splice(center, 1)[0] //找到他中间数为哪一个数值。
console.log(center); // 打印得出为5;
console.log(centerIndex); //打印得出为909;
var left = [], right = []; // 创建两个空的数组用于接收其他数值。
for (i = 0; i < list.length; i++) {
if (list[i] < centerIndex) { //如果数组遇到的数组里面的数值小于这个中间数值的话
left.push(list[i]) //全部经过对比以后,由push插入到left[],这个空数组里面。
}
else {
right.push(list[i]) //否则全部经过对比,由push插入到right[],这个空数组里面。
}
}
return quicklySort(left).concat([centerIndex], quicklySort(right)); //返回值为用concat连接的左边的数组和中间的数值还有右边的数组。
}
console.log(quicklySort(arr))
//冒泡排序
var arr = [23, 32, 45, 4, 12, 99, 104, 32, 1];
function mao(arr) {// 封装
var m = arr.length; //数组的长度
for (var i = 0; i < m - 1; i++) {//下标循坏
for (var j = 0; j < m - 1 - i; j++) { //数组内参数循坏 ,每循环一次就减少一个,数组的长度减去1在减去当前数组的长度
if (arr[j] > arr[j + 1]) { //相邻的两个数比较 前一个比后一个大 就互换位置
var num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = num
}
}
}
return arr
}
console.log(mao(arr)) //输出结果
</script>
好的,今天就先到这里了,下次将会带来跟多哦