双重循环:外层循环控制行数,内层循环行内个数
1:打印一个倒三角
let str = ''
for (let i = 1; i<=9; i++) {
for (let j = i; j<=9; j++ ) { //从i开始,内部一直到<=9位置
str += '⭐️'+'\t'
}
str += '\n'
}
console.log(str);
2:打印一个正三角
// 正五角星
let str = ''
for (let i = 1; i<=9; i++) { // 外层循环控制行数 1-9 总共九行
for (let j = 1; j<=i; j++ ) { // 内层循环控制行内个数,
第一行i=1,j=1 1 个星星
第二行i=2,j=2 2 个星星
第三行i=3,j=3 3 个星星
...
str += '⭐️'+'\t' //每个星星之间添加空格
}
str += '\n' //没循环一行,就进行换行
}
console.log(str); //输出星星
3:九九乘法表:思路和正三角基本一致,只是把星星换成了字符串表达式
let str = ''
for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= i; j++) {
str += j + '*' + i + '=' + j * i + '\t'
}
str += '\n'
}
console.log(str);
4:冒泡排序
let arr = [4, 1, 6, 2, 78, 23];
for (let i = 0; i <arr.length-1; i++) {
for (let j = 0; j <= arr.length-1-i; j++) {
if (arr[j] > arr[j+1]) { //升序,如果是降序 arr[j] < arr[j+1]
let temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
console.log(arr);
5:封装冒泡排序: 每个函数都有返回值,表面写的是返回函数里面形参,实际是返回函数里面运算的结果
function mao(arr) {
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j <= arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
let result = mao([4, 1, 6, 2, 3, 23])
console.log(result);
6:api实现数组的排序(冒泡)
let arr = [4, 1, 6, 2, 3, 23]
let newArr = arr.sort(function (a, b) {
return a - b;
});
console.log(newArr);
//注:a-b是升序,b-a是降序
7:数组的反转
let arr = ['pink', 'red', 'yellow'];
let empty = [];
for (let i = 0; i < arr.length; i++) {
empty[empty.length] = arr[arr.length - 1 - i];
}
console.log(empty)
8:数组的反转API
let arr = ['pink', 'red', 're', 'yellow'];
let empty =arr.reverse() ;
console.log(empty)
9:封装判断平年,闰年。并且返回但当年二月的天数
9.1:先判断是否是闰年:能被4整除但是不能被100整除,或者能被400整除,是闰年 ---- 另 && 的优先级大于 || ,所以&&不用➕() ,也是先判&&
function isFullYear(year) {
let flag = false;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
flag = true;
}
return flag;
}
console.log(isFullYear(2000))
9.2:根据年份,弹出二月的天数
function isFullYear(year) {
let flag = false;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
flag = true;
}
return flag;
}
function two() {
let year = prompt('请输入年份')
if (isFullYear(year)) {
console.log('二月' + 29)
} else {
console.log('二月' + 28)
}
}
two()
10:查找固定字符串重复的位置,并且输出重复的次数
let str = "qweorotoyot";
let index = str.indexOf('o');
let num = 0;
while (index !== -1) {
console.log(index);
num++;
index = str.indexOf('o', index+1)
}
console.log('o出现次数'+ num)
11:查找不固定的字符串出现次数最多,并且输出
let str = "qweorotoyot";
let obj = {};
for (let i = 0; i < str.length; i++) {
let chars = str.charAt(i);
if (obj[chars]) {
obj[chars]++;
} else {
obj[chars] = 1
}
}
console.log(obj);
let max = 0;
let k = '';
//key 属性,obj[key] 值
for (let key in obj) {
if (obj[key] > max) {
max = obj[key];
k = key;
}
}
console.log('出现最多次数是' + max + '次,字母是' + k);