JS7

栈和队列:

js中没有专门的栈和队列类型,都是用普通该数组模拟的。

何时:只要希望按照顺序使用数组元素时


栈:一端封闭,只能从另一端进出的数组

顺序: FILO

何时:如果希望始终操作最后进入数组的最新的元素时。

如何:

结尾出入栈:

入: arr.push(值);

出: var last=arr.pop();

优:每次出入栈不影响其余元素的位置


开头出入栈:

入: arr.unshift(值);

出: var first=arr.shift();

缺:每次出入栈都会影响每个元素的位置



队列:只能从一端进入,从另一端出

顺序: FIFO

何时:只要按照先来后到的顺序使用元素

如何:

从结尾入队列: arr.push(值)

从开头出队列: var first=arr.shift()




1.二维数组:

什么是:数组中的元素,又引用了另一个子数组。

何时:

1.存储横行竖列的二维数据

2.对一个大的数组中的元素,进一步分类

如何:

创建:

1.先创建空数组,再添加子数组:

               var arr=[];

               arr[0]=[2,2,4,0];

               arr[1]=[0,2,2,0];

2.在创建数组同时,初始化子数组

           var arr=[

                  [2,2,4,0],//0

                  [0,2,2,0],//1

                  ...

                 ];


访问元素:

arr[r][c]:访问arr中r位置的子数组中的c位置的元素

越界: r不能越界


遍历:外层循环控制行,内层循环控制列

              for(var r=0;r

                 for(var c=0;c

arr[r][c]//当前元素    

                 }

              }


练习:1.输入一串成绩,求总分 最高分,最低分

        var arr=[60,68,70,75,82,93,56];

        for(var i=0,sum=0,height=arr[0];i

sum+=arr[i];//求总分


求最高分

              if(arr[i]>height){

               height=arr[i];

             }


求最低分

             if(arr[i]

              height=arr[i];

             }


        }

        console.log(sum);

        console.log(height);

例:

            var arr=[65,78,98,65];

            for(var i=0,a=0,b=65,c=78;i

            a=arr[i]+a;求和

            if(arr[i]>b){求最大值

                b=arr[i];

            }

            if(arr[i]

                c=arr[i];

            }

        }

        console.log(a);

        console.log(b);

        console.log(c);


练习:

       去除数组中的重复项

        var arr=[1,2,3,4,5,2,3,4];

        for(var i=0,uarr=[arr[0]];i

          for(var j=0;j

            if(arr[i]==uarr[j]){

                break;

            }

          }

           if(j===uarr.length){

              uarr[uarr.length]=arr[i];

            }

        }

        console.log(uarr);

例:

var arr=[1,3,4,2,3,5,1];

       var arr2=[1];声明一个数组比较

        for(var i=0;i

            for(var j=0;j

            if(arr[i]==arr2[j]){

                break;


            }


            }

            if(j==arr2.length){

                    var arr2=arr2.concat(arr[i]);

                }

        }

        console.log(arr2);




练习:

求数组中的最大值

        var arr=[1,2,3,4,5];

遍历数组,同时声明变量sum并赋值为arr中的任何一个值

        for(var i=0,sum=2;i

            if(arr[i]>sum){

              sum=arr[i];

            }

        }

        console.log(sum);


例:

    var arr=[1,2,3,4,5,6,7];

        var num=4;

          for(var i=0;i

          console.log(arr[i]);

          if(arr[i]>num){

          num=arr[i];

         }

      }  

             console.log(num);

你可能感兴趣的:(JS7)