• JS数组+JS循环题


    先看JS循环作业题:

    一.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米

    <script type="text/javascript">
    var a=0.0001;
    var i=0;
    while(a<=8848){
        a=a*2;
        i++;
        }
        alert(i);
    
    </script>

    这个题主要考察的点:1.当要求得到什么效果或者多少次结束时,我们可以考虑运动while语句是比较方便的;

                                2.对折一次厚度要*2,所以下次折叠后,厚度为上一次的2倍

     二.公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少可能性?

         通过分析我们可以得到   公鸡最多买49只,母鸡最多97只,小鸡最多194只

    <script type="text/javascript">
    var i=0;
    for(var a=1;a<=49;a++){
          for(var b=1;b<=97;b++){
               for(var c=1;c<=194;c++){
                   if((a+b+c==100)&&(a*2+b*1+c*0.5==100)){
                       i++;
                       
                       }
                   }
              }
        }
    alert(i);
    </script>

    分析:1.这个题逻辑考察的是for循环,for循环四要素:初始值-- 循环条件--- 状态改变--- 循环体

            2.此外这个题目还考察了逻辑运算符(并:&&)  我们学习的三个逻辑运算符为[并:&&]    [或:||]   [非:!]

    三.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问6个月后有多少对兔子,幼兔、小兔、成兔对数分别是多少?

    经分析我们得到:

    第0个月:幼兔 1 小兔 0 成兔 0
    第1个月:幼兔 0 小兔 1 成兔 0
    第2个月:幼兔 1 小兔 0 成兔 1
    第3个月:幼兔 1 小兔 1 成兔 1
    第4个月:幼兔 2 小兔 1 成兔 2
    第5个月:幼兔 3 小兔 2 成兔 3
    第6个月:幼兔 5 小兔 3 成兔 5

    当前月份幼兔(y) = 上个月的成兔(sc)+上月小兔(sx)
    当前月份小兔(x) = 上月幼兔(sy)
    当前月份成兔(c) = 上月成兔(sc)+上月小兔(sx)

    所以:

    <script type="text/javascript">
        var y=1;
        var x=0;
        var c=0;
        var sy=0;
        var sx=0;
        var sc=0;
        for(i=1;i<=6;i++){
            sy=y;
            sx=x;
            sc=c;
            y=sc+sx;
            x=sy;
            c=sc+sx;
        }
        alert(y+","+x+","+c);
    alert(i);
    </script>

    这个题我是有点晕乎的,听到解析后思路瞬间打开了,以后还得注重问题的分析以及语言的逻辑性

                                                        JS数组(数据结构)

    一.数组的定义方式

    方式1:

    <script type="text/javascript">
    var arr = new Array();-----这一步之后,变量arr变为数组
        arr[0]=1;---------------arr[]里面为索引,索引值从0开始
        arr[1]=2;
        arr[2]=3;
        
        alert(arr[0]);
    </script>

    方式2:

    <script type="text/javascript">
    var arr = new Array(1,2,3,4,5);
        alert(arr[1]);
    </script>

    方式3:

    <script type="text/javascript">
    var arr = new Array();
        arr.push(1);
        arr.push(2);
        alert(arr[0]);
    </script>

    方式4:

    <script type="text/javascript">
    var arr = [1,2,3,4,5];
        alert(arr[2]);
    </script>

    一般我们只需要掌握方式1和2就好了

    特别注意:var arr =new Array();   /*这一步之后,变量arr变为数组*/

                  arr[a]=...;

    1.a的值是索引,所以的值从0开始
    2.数组的索引叫做(key),数组里面存的值叫做(value).
    3.key和value是成对存在的,叫做(键值对)

    二.强类型语言三个特点(弱类型语言“JS”可以不遵循,灵活性高):

    1.数组存储必须是连续的;

    2.数组必须规定长度;

    3.必须要规定存储的类型

    三.数组长度

     1.强类型语言:var arr =new Array(5);    /*表示数组长度是5,了解内容*/

     2.弱类型语言可以存储任何类型的数据(既能存整数,又能存字符串,还能存别的数据)

    <script type="text/javascript">
    var arr = new Array();
    arr[0]=1;
    arr[1]=2;
    arr[2]="hello";
    alert(arr[2]);
    
    </script>

    3.数组长度  length

    <script type="text/javascript">
    var arr = [1,2,3,4,5,6];
        alert(arr.length);
    </script>

    4.其他

    arr.length;     代表属性
    arr.push();    代表方法

    四.二维数组(相当于excel表格中的第几行第几列代表的数据,映射成一个表格)

    <script type="text/javascript">
    var arr = new Array(
            new Array(11,12,13,14,15),
            new Array(21,22,23,24,25),
            new Array(31,32,33,34,35)
        );
        
        alert(arr[0][4]);
    </script>

    五.遍历数组

    1.for循环

    <script type="text/javascript">
    var arr = new Array(62,31,11,7,18,20,11);
    for(var i=0;i<arr.length;i++){
            alert(arr[i]);
        }
    </script>

    注意:1.共跳转7次,在这里我们需要循环条件为   i<arr.length

            2.for循环是匹配数组的

            3.在数组中必须保证arr(var  i=0;)开始

    2.foreach循环(在强类型语言中运用,在JS语言中没有foreach)

    在JS用法

    <script type="text/javascript">
    var arr = new Array(62,31,11,7,18,20,11);
    for(var a in arr){
            alert(arr[a]);
        }
    </script>

    这样运用foreash循环结果和上面for循环结果是一致的

  • 相关阅读:
    OnFileOpen与OnOpenDocument(转)
    Wpf应用程序进入全屏和退出全屏
    在WPF中使用Emgu加载Image<,>图像的两种方法
    C#中ListBox控件重绘Item项
    sdut2404 Super Prime ACM算法设计
    真彩色制式下IplImage转成CBitmap格式
    【转】中缀表达式转换为后缀表达式
    MFC中CImage的简单复制方法 (Copy CImage)
    齐鲁软件大赛尖峰时刻团队
    Priest John's Busiest Day HDU2491 ACM算法设计
  • 原文地址:https://www.cnblogs.com/sutao/p/7018197.html
Copyright © 2020-2023  润新知