CH10_数组

第10章:数组

本章目标

  1. 掌握一维数组的运用

课程回顾

  1. js中循环控制语句的作用

数组

概述

什么是数组

数组是一种特殊的变量,它能够一次存放一个以上的值。

如果您有一个项目清单(例如,汽车品牌列表),在单个变量中存储汽车品牌应该是这样的:

var car1 = "奔驰";
var car2 = "宝马";
var car3 = "奥迪"; 

不过,假如您希望遍历所有汽车并找到一个特定的值?假如不是三个汽车品牌而是三百个呢?

解决方法就是数组!

数组可以用一个单一的名称存放很多值,并且还可以通过引用索引号来访问这些值。

语法

//1.声明数组
var arrayName;

//2.分配空间
arrayName=new Array(长度);

//3.赋值
arrayName[索引]=;

//4.使用
document.write("长度:"+arrayName.length);
document.write("首项"+arrayName[0]);

说明:数组索引从0开始,最大索引为长度-1.

应用

案例:数组的基本运用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组的基本运用</title>
</head>
<body>
    <script>
        //1.声明数组
        var nums;

        //2.分配空间
        nums=new Array(5);

        //3.赋值
        nums[0]=36;
        nums[1]=18;
        nums[2]="李四";
        nums[3]=3.15;
        nums[4]=98;


        //4.使用
        // document.write("姓名:"+nums[2]);
        // document.write("长度:"+nums.length);

        //直接查看数组
        document.write(nums);
    </script>
</body>
</html>

案例:数组的多种定义方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组的多种定义方式</title>
</head>
<body>
    <script>

        //声明数组且分配空间
        // var nums1=new Array(3);
        // nums1[0]=55;
        // nums1[1]=33;
        // nums1[2]=45;
        // document.write(nums1[1]);


        //声明数组且赋值
        // var nums2=new Array(45,89,23,99,100);
        // document.write("第一个数据:"+nums2[0]);
        // document.write("数组的长度:"+nums2.length);


        //声明数组且赋值
        var nums3=[56,34,90,23,100];
        document.write("第一个数据:"+nums3[0]);
        document.write("数组的长度:"+nums3.length);


    </script>
</body>
</html>

案例:数组的伸展性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组的伸展性</title>
</head>
<body>
    <script>

        //声明数组且分配空间
        var nums=new Array(3);

        //给数组赋值
        nums[0]=89;
        nums[1]=56;
        nums[2]=77;
        nums[3]=100;
        nums[99]=200;   //最终长度会以最大索引为参照物

        //使用数组
        // document.write("数组的长度:"+nums.length);
        // document.write("最后一个数据:"+nums[nums.length-1]);

        document.write(nums[5]);

    
    </script>
</body>
</html>

案例:查看数组中所有数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>查看数组中所有数据</title>
</head>
<body>
    <script>
        var nums=[45,89,3,99,100];


        //正向输出
        // for(var i=0;i<nums.length;i++){
        //     document.write(nums[i]+",");
        // }

        //逆向输出
        // for(var i=nums.length-1;i>=0;i--){
        //     document.write(nums[i]+",");
        // }

        //可选部分
        nums.forEach(function(item){
            document.write(item+",");
        });
        
    </script>
</body>
</html>

案例:查找数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>查找数据</title>
</head>
<body>
    <script>
        var nums=[45,89,3,99,100];

        var userNum=parseInt(prompt("请输入你要查找的数据:"));

        //是否找到
        var isFind=false;

        //重复比较
        for(var i=0;i<nums.length;i++){
            if(userNum==nums[i]){
               isFind=true;
               break;
            }
        }

        //最终判断
        if(isFind){
            alert("找到了");
        }else{
            alert("没找到");
        }
      
        
    </script>
</body>
</html>

案例:修改数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>修改数据</title>
</head>
<body>
    <script>
        var nums=[45,89,3,99,100];

        var oldNum=parseInt(prompt("请输入你要修改的数据:"));
        var newNum=parseInt(prompt("请输入修改后的数据:"));

        //对应数据索引
        var index=-1;

        //重复比较
        for(var i=0;i<nums.length;i++){
            if(oldNum==nums[i]){
                index=i;
            
               break;
            }
        }

        //最终判断
        if(index!=-1){
            nums[index]=newNum;
            alert("修改成功");
        }else{
            alert("修改失败,没有找到要修改的数据。");
        }

        //查看所有数据
        for(var i=0;i<nums.length;i++){
            document.write(nums[i]+",");
        }
      
        
    </script>
</body>
</html>

案例:删除数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>修改数据</title>
</head>
<body>
    <script>
        var nums=[45,89,3,99,100];

        var delNum=parseInt(prompt("请输入你要删除的数据:"));
        

        //对应数据索引
        var index=-1;

        //重复比较
        for(var i=0;i<nums.length;i++){
            if(delNum==nums[i]){
                index=i;
            
               break;
            }
        }

        //最终判断
        if(index!=-1){
            delete nums[index];
            alert("删除成功");
        }else{
            alert("删除失败,没有找到要修改的数据。");
        }

        //查看所有数据
        for(var i=0;i<nums.length;i++){
            document.write(nums[i]+",");
        }
      
        
    </script>
</body>
</html>

案例:数组排序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>修改数据</title>
</head>
<body>
    <script>

        //定义数组
        var nums=new Array(5);

        //初始化数据
        for(var i=0;i<nums.length;i++){
            nums[i]= +prompt("请输入一个整数:");
        }


        //排序(默认升序)
        nums.sort();

        
        //查看所有数据
        for(var i=0;i<nums.length;i++){
            document.write(nums[i]+",");
        }
      
        
    </script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>修改数据</title>
</head>
<body>
    <script>

        //定义数组
        var nums=new Array(5);

        //初始化数据
        for(var i=0;i<nums.length;i++){
            nums[i]= +prompt("请输入一个整数:");
        }


        //排序(降序)
        //nums.sort((a,b)=>a<b?1:a>b?-1:0);
        nums.sort(function(a,b){
            if(a<b){
                return 1;
            }else if(a>b){
                return -1;
            }else{
                return 0;
            }
        });

        
        //查看所有数据
        for(var i=0;i<nums.length;i++){
            document.write(nums[i]+",");
        }
      
        
    </script>
</body>
</html>

课后作业

基本作业(必须):

1.将一组数组[ ],的内容反过来,生成一个新的数组

2.将数组0,30,10,40,20,30,70,40,90,50中小于或等于50的数输出

3.弹出输入框,用户输入10个整数并且存到一个数组里,找到奇数和偶数分别有多少个,把这个数组打印出来,可以输入0,但是0不包括用户的输入10个里面,且输入0时是不消耗输入次数。

4。定义一个数组,存储科目:英语,语文,数学,然后依次输入老师的名字,最后输出科目对应的老师。(例如:语文:张莹)

5,在数组[10,11,30,40,40,50,60,70,80,90]中, 把11改成20然后把第一个40删除掉,然后把结果打印出来。

6.定义几个数字型的数组算出总分和平均分

7.定义一个长度为5的数组,里面包含有整型、字符串型的数据,然后更改3次数组中的数据,最后输出最终结果。

8.定义10个数字型的数组能被3整除数的和

9.随机输入10个整数,然后求其中的最大数和最小数各是多少。

10.随机输入10个整数,然后按照降序排序,最后再将首位和末尾数字互换,最终输出数组中的结果。

挑战作业(可选):

1.[1,1,3,4,5,5,2,1,4]数组中每个元素的出现次数

2.广创科技需要一个学生管理系统,主要功能如下:
A:注册,需要输入姓名,年龄,电话号码
B:查看,输出所有的学生的信息
C:查找,根据输入学生名字输出,出对应的名片信息
D:删除,根据姓名来删除(可删除多个同名的)

重点:因为广创比较大所以可以无限录入学生名片
提示:用警告框输出数据`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

功夫熊猫大侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值