zoukankan      html  css  js  c++  java
  • 数组中常用的方法

        push( )

          - 该方法可以向数组的末尾添加一个或多个元素,并返回数组的新的长度

          - 可以将要添加的元素作为方法的参数传递,这样这些元素将会自动添加到数组的末尾

          - 方法会将数组新的长度作为返回值返回

            var  arr = [ '悟空','八戒','沙僧','唐僧','奔波霸儿' ];

            var  result = arr . push( '霸波奔儿' );   // 6

            console . log( arr );   //   悟空,八戒,沙僧,唐僧,奔波霸儿,霸波奔儿 

        pop( )

          - 该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回

            result  =  arr . pop( );   //  5

            console . log( arr );  //  悟空,八戒,沙僧,唐僧,奔波霸儿

        unshift( )

          - 该方法可以向数组的开头添加一个或多个元素,并返回数组的新的长度

          - 向前边插入元素以后,其他的元素索引会依次调整

            arr . unshift = [ '红孩儿'];//  6

            console . log( arr );   //   红孩儿,悟空,八戒,沙僧,唐僧,奔波霸儿,霸波奔儿 

        shift( )

          - 该方法可以删除数组的第一个元素,并将被删除的元素作为返回值返回

            result  =  arr . shift( );   //   5

            console . log( arr );  //   八戒,沙僧,唐僧,奔波霸儿,霸波奔儿 

        slice( ):不会对原数组产生影响

          - 可以用来从数组提取指定元素,该方法不会改变元素数组,而是将截取到的元素封装到一个新的数组中返回

          - 参数:

             1. 开始的位置索引,包含开始索引

             2. 结束的位置索引,不包含结束索引

                第二个参数可以省略不写,此时会截取从开始索引往后的所有元素

           - 索引可以传递一个负值,如果传递一个负值,则从后往前计算

              -1:表示倒数第一个,-2:表示倒数第二个 

              result  =  slice(1,3)  //    悟空,八戒

        splice( )

          - 可以用于删除数组中的指定元素

          - 使用splice( ) 会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回

          - 参数:

            第一个参数,表示开始位置的索引

            第二个参数,表示删除的数量

            第三个及后面的参数,替换删除位置的新参数

            var  arr = [ '悟空','八戒','沙僧','唐僧','奔波霸儿' ];

            result  = arr . splice( 1, 2 , ' 牛魔王 ') ;  //  悟空,牛魔王,沙僧,唐僧,奔波霸儿

        concat( ):不会对原数组产生影响

          - 连接两个或更多个数组,并将新的数组返回

          - 除了可以传数组,也可以传元素

            var  arr = [ '悟空','八戒','沙僧' ];

            var  arr2 = [ '牛魔王','红孩儿','铁扇公主' ];

            var  result  =  arr . concat( arr2,' 白骨精 ',' 蜘蛛精 ' );

            console . log( result );

         join( ):不会对原数组产生影响

           - 该方法可以将数组转换为一个字符串

           - 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回

           - 在 join( )中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符

            如果不指定连接符,则默认使用逗号(,)作为连接符

             arr = [ '八戒','悟空','沙僧' ];

             result = arr . join( ' - ' );

             console . log( result );  //  八戒 - 悟空 - 沙僧

         reverse( )

           -  该方法用来反转数组(前边的去后面,后边的去前面)

           - 该方法会直接修改原数组

              arr . reverse( );

              console . log( arr );   //  沙僧,八戒,悟空

         sort()

           - 可以用来对数组中的元素进行排序

           - 也会影响原数组,默认会按照Unicode编码进行排序

           - 即使对于纯数字的数组,使用sort( )排序时,也会按照Unicode编码来排序,所以对数字进行排序时,可能会得到错误的结果。

           - 我们也可以自己来指定排序规则

            在sort( )添加一个回调函数,来指定排序规则

            回调函数中需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数

            使用哪个元素调用不确定,但是肯定的是在数组中 a 一定在 b 前边

           - 浏览器会根据回调函数的返回值来决定元素的顺序

              如果返回一个大于0的值,则元素会交换位置

              如果返回一个小于0的值,则元素位置不变

              如果返回一个0,则认为两个元素相等,也不交换位置

              arr  = [ 5,4,3];

              arr . sort( function(a,b){

                /*

                if( a > b ){   // 前面的大  倒序排序

                  return 1;   //  return -1;表示升序排序

                }else if( a < b ){

                  return -1;

                }else{

                  return 0;

                }  */

                //  可以优化上面的做法

                return  a - b ;   //  升序排序

                return  b - a ;   //  降序排序  

              });

              console . log( arr ) ;  //  a =5  b = 4  , a = 4  b = 3

         push( )案例:   

            function Person( name , age ){
              this.name = name;
              this.age = age;
            }
            Person.prototype.toString = function(){
              return this.name + ',' + this.age + '岁。' ;
            };
     
            //  创建一个 Person 对象
            var per = new Person('孙悟空',18);
            var per2 = new Person('猪八戒',20);
            var per3 = new Person('红孩儿',8);
            var per4 = new Person('沙和尚',16);
            var per5 = new Person('唐僧',21);
     
             //  将这些 person 对象放置在一个数组中
            var perArr = [ per,per2,per3,per4,per5 ];
     
             //   创建一个函数,可以将Person中的满18岁的Person提取出来,封装到一个新的数组中并返回
            //   arr  形参,要提取信息的数组
            function getAdult( arr ){
     
              var newArr = [ ] ;  //  创建一个新的数组
              //  遍历arr,获取 arr 中 Person 对象
              for(var i = 0 ; i < arr.length ; i++){
                if(arr [ i ].age >= 18){    //  判断 Person 对象的 age 是否大于等于18
                  newArr.push( arr[ i ] );    //  如果大于等于18,则将这个对象添加到newArr数组中
                }
              }
                return newArr;   //   将新的数组返回
            }
            var result = getAdult( perArr );
            console.log( result );
     
     
         splice( )案例:  
            //   删除数组中重复的元素 
        
            var arr = [1,2,3,3,2,1,3,4,5,2];    //  创建一个数组 
     
            for(var i = 0; i < arr.length ; i++){    //  获取数组中的每一个元素
              //  console . log( arr[ i ] ) ;   获取当前元素后的所有元素
              for(var j = i + 1 ;j < arr.length ; j++){
     
                if( arr[ i ] == arr[ j ] ){   //   判断两个元素的值是否相等
                  //   如果相等则证明出现了重复的元素,则删除 j 对应的元素
                  arr.splice( j , 1 ) ;  
                  //  当删除了当前 j 所在的元素以后,后边的元素会自动补位
                  //   此时将不会在比较这个元素,需要再比较一次 j 所在位置的元素
                  //    使 j 自减
                }
                 j -- ;
              }
              document.write( arr[ i ] ) ;
            }
  • 相关阅读:
    条件注释判断IE版本
    win7及以上系统打开chm空白或显示"无法打开"的2个解决方案
    复制和删除txt文件
    casperjs 抓取爱奇艺高清视频
    chrome扩展程序之http/https 报文拦截
    bootstrap 的 datetimepicker 结束时间大于开始时间
    Jquery EasyUI的datagrid页脚footer使用及数据统计
    Web应用程序在加入反向代理服务器的时候如何获得真实IP
    c#4.0 新特性 可选参数 可曾用过?
    Pyhon
  • 原文地址:https://www.cnblogs.com/qtbb/p/11268386.html
Copyright © 2011-2022 走看看