js基础案例归档

双重循环:外层循环控制行数,内层循环行内个数

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);

发布了142 篇原创文章 · 获赞 77 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/qq_38845858/article/details/102514794