zoukankan      html  css  js  c++  java
  • JavaScript 数组篇

    数组问题
    1.创建数组
    (1)利用new创建数组 var 数组名=new Array()

      也可以 var arr=new Array(2,3);
    (2)  利用数组字面量创建数组(常用)var 数组名=[ ];(var arr=[1,2,'pink'])(数组里的数据类型并不拘泥于一种)
    2.数组长度
    (1)数组.length
      (2)  修改数组长度 
            arr.length=指定长度。
             增加数组索引

    (3)检测是否为数组

      ①instanceof  运算符,可以检测是否为数组

       var  arr=[ ];

          conseole.log(arr instanceof  Array);

      ②Array.isArray(参数);

        console.log(Array.isArray(arr));

    3.添加删除数组元素的方法

    方法名 说明 返回值
     push(参数1...)

    末尾添加一个或多个元素,注意修改原数组       

      返回新的长度   
     pop()  删除数组最后一个元素,把数组长度减一,无参数,修改原数组   返回删除的元素的值  
     unshift(参数1...) 向数组的开头添加一个或多个元素,注意修改原数组 返回新的长度
     shift() 删除数组的第一个元素,数组长度减一,无参数,修改原数组 返回第一个元素的值

    4.数组排序

     方法名   数组   是否修改原数组 
     reverse() 颠倒数组中元素的顺序,无参数 该方法会改变原来的数组,返回新数组
     sort()  对数组的元素进行排序 该方法会改变原来的数组,返回新数组

    reverse:

     var arr=[1500,1200,1800,2000,2100];
           arr.reverse();
           console.log(arr);

    sort();

    当像使用reverse()一样使用sort()时,数组中若均为单数,则新数组按升序排列。若多位时则会出现错误,因为sort()会先比较最左端的数字进行排序。故一般

     var arr=[1500,1200,1800,2000,2100];
                arr.sort(function(a,b){
                    return a-b;//此时为升序,return b-a为降序
                })
                console.log(arr);

    5.获取数组元素索引

    方法名 说明 返回值
    indexOf() 数组中查找给定元素的第一个索引 如果存在,返货索引号,如果不存在,返回-1
    lastIndexOf() 再数组中的最后一个的索引 如果存在,返回索引号,如果不存在,返回-1
      var arr=['pink','green','red','blue'];
               console.log(arr.indexOf('pink'));
               console.log(arr.lastIndexOf('pink'));
               //前者从前往后查找,后者从后往前查找,查找方向不同,但同一元素索引号为定值
            </script>

    6.数组去重

    ①目标:把旧数组里面不重复的元素选取出来放到新数组里面。

    ②核心算法:遍历旧数组,用旧数组里的元素查询新数组,若该元素新数组里不存在,则添加进去,反之不添加。

    问题:如何知道此元素新数组里是否存在??利用indexOf().

    var arr=[1,3,5,6,3,1,2];
             var arr1=[];
             for(var i=0;i<arr.length;i++){
                 if(arr1.indexOf(arr[i])===-1)
                    arr1.push(arr[i]);
             }
             console.log(arr1);

    7.将数组转换为字符串

    方法名 说明 返回值
    toString()  把数组转换成字符串,逗号分隔每一项 返回一个字符串

    join('分隔符')

    用于将数组中的所有元素转换为一个字符串 返回一个字符串
    var arr=[1,2,3];
             console.log(arr.toString());
             var arr1=['green','red','blue'];
             console.log(arr1.join())//green,red,blue
             console.log(arr1.join('-'));//green-red-blue;
             //相比于toString,join()强大之处在于可以改变转换后的分隔符。
            </script>
    方法名 说明 返回值
    concat() 连接两个或多个数组,不影响原数组 返回一个新的数组
    slice() 数组截取slice(begin,end) 返回被截取项目的新数组
    splice() 数组删除splice(begin,end) 返回被删除项目的新数组,此操作会影响原数组

     基本包装类型

    var str="andy";

    console.log(str.length);//可以输出结果为4.

    那么,问题来了。只有对象和复杂数据类型才有属性和方法,简单数据类型为何会有length属性呢?

    基本包装类型:把简单的数据类型包装为复杂数据类型;

    执行时实际上可分为以下三步

    //(1)把简单数据类型包装为复杂数据类型
                var temp=new String('andy');
                //(2)把临时变量的值给str
                str=temp;
                //(3)销毁这个临时变量
                temp=null;
  • 相关阅读:
    彻底清除Linux centos minerd木马 实战  跟redis的设置有关
    linux 弹出光驱失败
    teamviewer "TeamViewer Daemon is not running
    linux 如何查找io的进程
    网站开启https后加密协议始终是TLS1.0如何配置成TLS1.2?
    查看openssl的版本
    https单向认证和双向认证
    pem转换成der
    locate: can not open `/var/lib/mlocate/mlocate.db': No such file or directory
    mysql 有报错  ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
  • 原文地址:https://www.cnblogs.com/echol/p/12449003.html
Copyright © 2011-2022 走看看