A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-7-20 16:30 编辑

【黑马程序员济南】 前端与移动开发就业班笔记JS进阶:Day02

今天我们需要学习JS中循环语句的使用,以及数组的遍历、排序。

for循环练习
[JavaScript] 纯文本查看 复制代码
<script>
        /**
     * @author  传智播客
     */
    //打印正方形
    /*for (var i = 1; i <= 10; i++) {
     for (var j = 1; j <= 10; j++) {
     document.write("★");
     }
     document.write("<br/>");
     }*/
    //打印直角三角形
    /*for (var i = 1; i <= 10; i++) {
     for (var j = 1; j <= i; j++) {
     document.write("★");
     }
     document.write("<br/>");
     }*/
    //打印 9 * 9 乘法表
    for (var i = 1; i < 10; i++) {
        for (var j = 1; j <= i; j++) {
            document.write(j + "*" + i + "=" + i * j);
            document.write(" ");
        }
        document.write("<br/>");
    }

</script>

数组的声明
通过构造函数声明(更加通用)
var arr = new Array("a", "b","c");

通过字面量声明(更加简便)
var arr =["a","b","c"];

数组的赋值和取值
赋值
数组名[索引号] = 值 //arr[0]=100
取值(通过数组名和索引即可取到对应的值)
数组名[索引号]  // arr[0]

数组的遍历
数组的索引是从0开始的
数组的长度可以通过arr.length获取
由于数组的索引从0开始,所以最后一个值的索引为arr.length-1

通过for循环遍历数组
[JavaScript] 纯文本查看 复制代码
    /**
     * @author  传智播客
     */
    for (var i = 0; i <= arr.length - 1; i++) {
        console.log(arr[i]);
    }
可简写为:
[JavaScript] 纯文本查看 复制代码
    /**
     * @author  传智播客
     */
    for (var i = 0; i < arr.length; i++) {
        console.log(arr);
    }
数组length的应用
往数组中添加新元素,数组的length会增加
通过给arr.length赋值可以改变数组的长度

冒泡排序
[JavaScript] 纯文本查看 复制代码
    /**
     * @author  传智播客
     */
    var arr = [65, 97, 76, 13, 27, 49, 58];
    //循环控制趟数
    for (var i = 0; i < arr.length - 1; i++) {
        //控制两两比较的次数
        for (var j = 0; j < arr.length - 1; j++) {
            //两两比较   从小到大排序
            if (arr[j] > arr[j + 1]) {
                //交换位置
                var tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }

冒泡排序最终版
[JavaScript] 纯文本查看 复制代码
    /**
     * @author  传智播客
     */
    //将一个数组中的值从小到大排列
    //var arr = [65, 97, 76, 13, 27, 49, 58];
    var arr = [1, 2, 3, 4, 5];
    var outer = 0
    var inner = 0;
    for (var i = 0; i < arr.length - 1; i++) {
        //var wocai = "我猜这次一排列的是一个已经排好了的数组";
        var flag = true;//假设这次排列的是一个已经排好了的数组
        for (var j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                //wocai = "猜错了";
                flag = false;
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
            inner++;
        }
        outer++;
        //if (wocai !== "猜错了") {
        if (flag) {
            break;
        }
    }
    console.log(arr);
    console.log(inner);
    console.log(outer);

今天的讲解到此结束,如果小伙伴们还有什么不懂的可以在下方留言,或者去黑马程序员官网下载最新资料进行学习。http://www.itheima.com/

1 个回复

倒序浏览
学到了,加油,加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马