js中简单入门算法
Sonder
2022-08-15
1414字
4分钟
浏览 (2.1k)
js 统计出现最多的字符
let str = 'asgfhfgdhyjaaccccccsssccc';
function findMax(str) {
if (str.length === 1) {
return str;
}
let charObj = {}
// 新数组里没有就用1来代替
// charAt() 方法可返回指定位置的字符
for (let i = 0; i < str.length; i++) {
if (!charObj[str.charAt(i)]) {
charObj[str.charAt(i)] = 1;
} else {
charObj[str.charAt(i)] += 1;
}
}
let maxChar = '',
maxValue = 1;
for (let k in charObj) {
if (charObj[k] >= maxValue) {
maxChar = k; // 出现的次数
maxValue = charObj[k]; // 出现最多的
}
}
return maxChar
}
console.log(findMax(str))
计算阶乘
如5x4x3x2x1,5x(5-1)
function jc(n) {
if(n === 1) return;
return n * fn(n - 1)
}
求和 1-100
function sum(n) {
if(n === 1) return;
return sum(n - 1) + n
}
求1-100的递归和
function jh(num1, num2) {
let num = num1 + num2;
if(num2 + 1 > 100) {
return num;
}
return jh(num, num2 + 1);
}
let sum1 = jh(1,2)
console.log(sum1); // 5050
走楼梯
有n个台阶,每次可以走1步或者2步,走完这个楼梯有多少种走法 (n-1)+(n-2)
function zlt(n) {
if(n === 1) return;
return zlt(n - 1) + zlt(n - 2);
}