找出字符串中出现次数最多的数字及次数去重后并排序.
step1:找到出现最多的数字和出现的次数
var str = '85872637471533203552943982'
// 定义一个空对象
var obj = {}
// 遍历字符串
for (var i = 0; i < str.length; i++) {
// str[i]得到的是对应索引下的某个字符串
// 如果对象中有这个字符串让字符串的次数加1,如果没有这个字符串让字符串的次数等于1
obj[str[i]] ? obj[str[i]]++ : obj[str[i]] = 1
}
// 定义出现的最多的数和它的次数
var maxNum = 0
var maxValue = 0
// 遍历对象
for (var key in obj) {
// 获取出现最多的次数和数
if (obj[key] > maxNum) {
maxNum = obj[key]
maxValue = key
}
}
console.log('出现最多的数字是:' + maxValue + ',出现了' + maxNum + '次')
step2:去除字符串中重复的数字
var arr = str.split('')
// 遍历数组
for (var i = 0; i < arr.length; i++) {
// 注意这里是j=i+1与后面的数比较
for (var j = i + 1; j < arr.length; j++) {
// 如果前一个数与后一个数重复
if (arr[i] === arr[j]) {
// 去掉重复的字符
arr.splice(j, 1)
// 去掉一个后索引改变,让j的索引-1才能遍历去掉这个位置后面的每个数
j--
}
}
}
step3:对去重后的字符串排序
//冒泡排序
for (var j = 0; j < arr.length - 1; j++) {
for (var i = 0; i < arr.length - 1 - j; i++) {
if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
}
}
// 重新转换成字符串
console.log(arr.join(''))