JS基础知识 数组

1. 数组(重要)

要求:

  • 能够知道为什么要有数组
  • 能够创建数组
  • 能够获取数组中的元素
  • 能够对数组进行遍历
  • 能够给数组新增一个元素
  • 能够独立完成冒泡排序的案例



     

2. 创建数组

2.1 数组字面量创建数组 

  • 创建空数组
    let arr = [];
  • 创建一般数组
    let arr = [1, 2, 'lsy', true];

2.2 利用 new 创建数组

  1. 创建空数组

    let arr = new Array();
  2. 创建指定长度的数组,有2个空数组元素

    let arr1 = new Array(2);
  3. 创建放有指定元素的数组([2, 3])

    let arr2 = new Array(2, 3);
<script>
        // 1. 数组(Array):就是一组数据的组合,存储在单个变量下的优雅方式
        // 2. 利用new 创建数组
        var arr = new Array();  //创建了一个空的数组
        // 3. 利用数组字面量创建数组[]
        var arr = [];   //创建了一个空的数组
        var arr1 = [1, 2, 'lsy', true];
        // 4. 数组里面的数据一定要用逗号分割,里面的元素被称为数组元素
        // 5. 获取数组元素
        console.log(arr1);
    </script>

 

3. 获取数组元素

 3.1 数组的索引

索引(下标):用来访问数组元素的序号(数组下标从0开始)

可以通过 “数组名[ 索引 ]” 来获取数组中的元素。

如:console.log( arr1 [ 3 ] ) ;  //   就打印输出 ‘ lsy ’。(上面的例子)

4. 遍历数组

遍历:把数组中的每个元素从头到尾都访问一次

<script>
var arr2 = ['yellow', 'green', 'blue', 'red'];
        for (var i = 0; i <= 3; i++) {
            console.log(arr2[i]);  //把i当做索引号来用
        }
    </script>

4.1 数组的长度

使用 “数组名.length” 可以访问数组元素的数量(数组长度)(不用一个一个数元素个数,但注意不能再使用“<=”号)

<script>
        var arr = ['关羽', '张飞', '马超', '赵云', '黄忠', '刘备', '姜维'];
        for (i = 0; i < arr.length; i++) {
            console.log(arr[i]);
        }
    </script>

 

5. 数组中新增元素

5.1 通过修改 length 长度新增数组元素

  • 实现数组扩容目的
  • length属性是可读可写的
<script>
        // 1. 新增数组元素   修改length长度
        var arr = ['red', 'green', 'blue'];
        console.log(arr.length);
        arr.length = 5;  //把设置长度改为5(原本是3)
        console.log(arr);
        console.log(arr[3]);  //显示为undefined
        console.log(arr[4]);   //显示为undefined
    </script>

5.2 通过修改数组索引新增数组元素 

  • 追加数组元素
  • 不要直接给数组名赋值,否则会覆盖以前的数据
<script>
// 2. 新增数组元素   修改索引号  追加数组元素
        var arr1 = ['red', 'green', 'blue'];
        arr1[3] = 'pink';
        console.log(arr1);
        arr1[0] = 'snow';   //替换原来的数组元素
        console.log(arr1);
        arr1 = '有点意思';   //不要直接给数组名赋值,否则里面的少之又少都没有了
        console.log(arr1);
    </script>

 从 [2, 0, 6, 1, 77, 0, 52, 0, 52, 7] 中筛选大于等于10的元素(注意新数组的索引号要从0开始)

<script>
        // 方法1(易理解但麻烦)
        var arr1 = [];
        var j = 0;
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 52, 7];
        for (i = 0; i < arr.length; i++) {
            if (arr[i] >= 10) {
                // 新数组一个从0开始,依次递增
                arr1[j] = arr[i];
                j++;
            }
        }
        console.log(arr1);

        
        // 方法2(有点难理解但方便好用)
        var arr1 = [];  // 刚开始的时候  arr1.length 就是0
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 52, 7];
        for (i = 0; i < arr.length; i++) {
            if (arr[i] >= 10) {
                // 新数组一个从0开始,依次递增
                arr1[arr1.length] = arr[i];
            }
        }
        console.log(arr1);
    </script>

冒泡案例(本人理解能力不足,认为较难理解...)

<script>
// 4. 数组排序  (冒泡排序)将数组中的元素按照一定的顺序排列
        var arr = [5, 4, 3, 2, 1];
        for (var i = 0; i <= arr.length - 1; i++) {  //外层循环负责趟数
            for (var j = 0; j <= arr.length - i - 1; j++) {  //里层循环负责每一趟的交换次数
                //内部交换2个变量的值,前一个和后一个元素相比较
                if (arr[j] > arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        console.log(arr);


</script>

 

 

上一篇:前端学习记录


下一篇:leetcode 799. 香槟塔