<script>
//重復(fù)數(shù)
var str = "abbbccccdddddddddfdsgfdwersddfdasderweasddmmmmmmmmmmmmmmmm"
function MaxImumRepeat(string) {
var obj = {}, //用于放置數(shù)組每項(xiàng)內(nèi)容
num = 0, //用于承接數(shù)量
objContent = ''//用于承接對(duì)象中的內(nèi)容
for (var i in string) {
// obj[string[i]] ? obj[string[i]] += 1 : obj[string[i]] = 1
if (obj[string[i]]) { //判斷這個(gè)對(duì)象中有沒(méi)有這一項(xiàng)个盆,如果沒(méi)有輸出false,如果有輸出的是true
obj[string[i]] += 1; //輸出true時(shí)說(shuō)明原對(duì)象中已經(jīng)有這個(gè)值了朵栖,再到找時(shí)個(gè)數(shù)就要+1
} else {
obj[string[i]] = 1 //如果在對(duì)象中沒(méi)有找到這一項(xiàng)颊亮,就寫(xiě)入這一項(xiàng),數(shù)量為1陨溅,當(dāng)字符串中還有這一項(xiàng)時(shí)终惑,找到后對(duì)象中已存在此項(xiàng),所以執(zhí)行的是上面的操作
}
for (var j in obj) { //把字符串中的每一項(xiàng)都放置在對(duì)象中后门扇,需要比較每一項(xiàng)有多少個(gè)雹有,就要遍歷對(duì)象中的每一項(xiàng),并找到個(gè)數(shù)比較
if (obj[j] > num) { //num初始值是0 悯嗓,如果遍歷過(guò)程中件舵,有數(shù)量大于num的時(shí)候,就把這個(gè)數(shù)量從新賦給num
num = obj[j] //一旦找到比它大的就重新賦值脯厨,以此來(lái)找最大數(shù)
objContent = j //這個(gè)時(shí)候出現(xiàn)的就是出現(xiàn)最多的項(xiàng)是j铅祸,把j賦值給用于承接對(duì)象內(nèi)容的變量中
}
}
}
return '出現(xiàn)最多的是:' + objContent + '出現(xiàn)的次數(shù)是:' + num //返回結(jié)果
}
document.write(MaxImumRepeat(str)) //調(diào)用
// 判斷質(zhì)數(shù)
function isZhishu(n) {
if (n <= 1) { //當(dāng)n小于等于1的話,直接返回false。
return false;
}
for (i = 2; i < n; i++) {
if (n % i == 0) { // 如果i能被n整除临梗,那么n就不是一個(gè)質(zhì)數(shù)涡扼。
return false; // 就返回false;
}
}
return true; // i不能被n整除盟庞,那能整除的就1和n自己本身的話吃沪,那這個(gè)數(shù)就是質(zhì)數(shù)。 返回為true什猖。
}
console.log(isZhishu());
function zhiNum(n, m) {
var arr = []; //創(chuàng)建一個(gè)空數(shù)組來(lái)接收質(zhì)數(shù)
for (j = 0; j < m; j++) { //遍歷傳進(jìn)來(lái)的范圍內(nèi)的每一個(gè)數(shù)
if (isZhishu(j)) { //先判斷范圍內(nèi)的數(shù)是不是質(zhì)數(shù)票彪,
arr.push(j) //如果是質(zhì)數(shù),則依次放入空數(shù)組中
}
}
return arr; //返回接受質(zhì)數(shù)的那個(gè)空數(shù)組
}
console.log(zhiNum(1, 100));
//快速排序
var arr = [1, 323, 43, 67, 98, 909, 100, 33, 33, 45, 76]; //數(shù)組
function quicklySort(list) {
if (list.length < 1) { // 如果數(shù)組的長(zhǎng)度小于1的話不狮,就會(huì)重復(fù)返回list降铸。
return list;
}
var center = Math.floor(list.length / 2); //找到他中間數(shù)的坐標(biāo)。
var centerIndex = list.splice(center, 1)[0] //找到他中間數(shù)為哪一個(gè)數(shù)值摇零。
console.log(center); // 打印得出為5推掸;
console.log(centerIndex); //打印得出為909;
var left = [], right = []; // 創(chuàng)建兩個(gè)空的數(shù)組用于接收其他數(shù)值驻仅。
for (i = 0; i < list.length; i++) {
if (list[i] < centerIndex) { //如果數(shù)組遇到的數(shù)組里面的數(shù)值小于這個(gè)中間數(shù)值的話
left.push(list[i]) //全部經(jīng)過(guò)對(duì)比以后谅畅,由push插入到left[],這個(gè)空數(shù)組里面噪服。
}
else {
right.push(list[i]) //否則全部經(jīng)過(guò)對(duì)比毡泻,由push插入到right[],這個(gè)空數(shù)組里面粘优。
}
}
return quicklySort(left).concat([centerIndex], quicklySort(right)); //返回值為用concat連接的左邊的數(shù)組和中間的數(shù)值還有右邊的數(shù)組牙捉。
}
console.log(quicklySort(arr))
//冒泡排序
var arr = [23, 32, 45, 4, 12, 99, 104, 32, 1];
function mao(arr) {// 封裝
var m = arr.length; //數(shù)組的長(zhǎng)度
for (var i = 0; i < m - 1; i++) {//下標(biāo)循壞
for (var j = 0; j < m - 1 - i; j++) { //數(shù)組內(nèi)參數(shù)循壞 ,每循環(huán)一次就減少一個(gè),數(shù)組的長(zhǎng)度減去1在減去當(dāng)前數(shù)組的長(zhǎng)度
if (arr[j] > arr[j + 1]) { //相鄰的兩個(gè)數(shù)比較 前一個(gè)比后一個(gè)大 就互換位置
var num = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = num
}
}
}
return arr
}
console.log(mao(arr)) //輸出結(jié)果
</script>
好的敬飒,今天就先到這里了,下次將會(huì)帶來(lái)跟多哦