当前位置: 首页 > news >正文

有关数组的相关知识~~

首先需要先简单了解下什么是数组~

1、什么是数组?

  数组就是一组数据的集合,其表现形式就是内存中的一段连续的内存地址,数组名称其实就是连续内存地址的首地址。说白了它就是将一堆数据按照一定的顺序将他们连续存放在一个空间中。

2、数组的特点

  数组定义时无需指定数据类型,数组定义时可以无需指定数组长度,数组可以存储不同数据类型的数据(String,Number等等)

3、创建数组的语法

  var arr=[值1,值2,值3];                       //隐式创建

  var arr=new Array(值1,值2,值3);      //直接实例化一个数组

  var array=new Array(size);              //创建数组并指定长度

 //方法一:隐式创建     
 var arr = [1,2,3];
 document.write(arr[2]+"<br />");
 //方法二:实例化数组
 var arr2 = new Array(2,4,6,8,10);
 document.write(arr2[3] + '<br>');
 //方法三:创建数组并指定长度
 var arr3 = new Array(3);//固定数组长度为3
 arr3[0] = 1;
 arr3[1] = 2;
 arr3[2] = 3;
 document.write(arr3[2] + '<br>');

4、数组的长度(length)

  Array.length

  在javascript中,每个数组都可用调用length属性,它用来表示数组的长度。

 var arr = [1,2,3];
 //这里的arr[2]表示,在arr数组中寻找下标为2的值,输出3,因为下标从0开始
 document.write(arr[2]+"<br />");

5、数组中的文本下标

  语法:

 var arr = [1,2,3];
 arr['hahaha']='哈哈哈';
 arr['hehehe']='呵呵呵';
 document.write(arr.length+"<br />");   //这里输出的结果会是3,而不5
 document.write(arr.hxw +"<br/>")     //通过arr.它的属性来获取它的值
 document.write(arr.chr +"<br/>")

  注意:这里文本下标的值并不计算在数组的长度以内。

6、Array对象的方法

  (1)、concat():连接两个或更多的数组,并返回结果。简单来说,就是将多个数组的元素相连接在一起,该方法不会改变现有的数组,只是返回一被连接数组的一个副本。

复制代码
       /*数组合并方法一:将两个或多个数组合并*/
            var arr = new Array();
                arr[0] = "可是"
                arr[1] = "然而"
                arr[2] = "但是"
                arr[3] = "不过"
            
            var arr2 = new Array();
                arr2[0] = "还有"
                arr2[1] = "你猜"
                arr2[2] = "不睬"
                arr2[3] = "嗯哼"
                
            document.write(arr.concat(arr2));
复制代码
        //数组合并方法二:将新元素合并在原有的数组中
            var i = [1,2,3,4,5,6]
            document.write(i.concat(99,88)+"<br />");

  

  (2)、join():把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

复制代码
       //将数组中的值转换成字符串
       var arr = new Array(3)
       arr[0] = "George"
       arr[1] = "John"
       arr[2] = "Thomas"
       document.write(arr.join())
复制代码
复制代码
      //使用.分隔符分隔数组中的元素
      var arr = new Array(3)
      arr[0] = "George"
      arr[1] = "John"
      arr[2] = "Thomas"

      document.write(arr.join("."))
复制代码

 

  (3)、pop():删除并返回数组的最后一个元素。删除数组的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

       /*删除数组末尾参数方法  pop()*/
            document.write("pop()删除数组末尾参数,数组长度减1"+"<br />")
            var i = [1,2,3,4,5,1231]  
            document.write(i.length+"<br />");  //此时数组长度为6
            document.write(i.pop()+"<br />");  //删除并显示数组末尾的值,同时数组长度减1
            document.write(i.length+"<br /><br /><br />")//此时数组长度为5

 

  (4)、push():向数组的末尾添加一个或更多元素,并返回新的长度。

      //通过push()方法向末尾添加一条数据,数组长度加1
            document.write("push()向末尾添加一条数据,数组长度加1"+"<br />")
            var i = [1,2,3,4,5,1231]
            document.write(i.length+"<br />");
            document.write(i.push(12,31)+"<br />");  //向末尾添加一个元素,不显示添加的值,但返回数组长度
            document.write(i+"<br /><br /><br />");

 

  (5)、reverse():颠倒数组中元素的顺序。

       //reverse()方法用来将数组中的值反向输出
            document.write("reverse()反向输出数组值")
            var i = [1,2,3,4,5,1231]
            document.write(i.reverse()+"<br /><br /><br />");

 

  (6)、shift:删除并返回数组的第一个元素。如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。

       /*shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。它会改变数组长度*/
            document.write("shift()方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。"+"<br />");
            var i = [1,2,3,4,5,1231]
            document.write(i.shift()+"<br /><br /><br />");

 

  (7)、slice():从某个已有的数组返回选定的元素,该方法并不会修改数组,而是返回一个子数组。下面做一个小例子:

复制代码
        /*slice方法
             * slice(start,end)  start规定从何处开始,end表示何处结束,但是不包括end该元素
             * 用来在已知的数组中返回选中的元素,该方法不会改变原有的数组,而是返回一个子数组,
             * 同时可以写入负值,从末尾取值
             * */
            var i = [1,2,3,4,5,1231]
            document.write(i.slice(2,4)+"<br /><br /><br />"); //返回结果为3,4
复制代码

 

  (8)、sort():对数组的元素进行排序。

    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。

复制代码
       var i = [11,1,311,4,5]
            var j = ["e","g","q","a","b","d"]
            function sortNumber(a,b){
                return a-b;
            }
            document.write(j.sort()+"<br />");  //默认按照字符串的ASCIII码表排序
            document.write(i.sort(sortNumber)+"<br /><br /><br />"); //数值型比较大小需要给它写一个排序函数,
复制代码

 

  (9)、splice():删除元素,并向数组添加新元素。向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。下面我们做一个小例子:

         var i = [11,1,311,4,5];
            document.write(i+"<br />");                 //显示i中的所有元素
            document.write(i.splice(0,3)+"<br />");  //此时显示它已经删除的元素
            document.write(i+"<br /><br /><br /><br />");  //显示它删除后i中所剩的元素

 

  (10)、toSource():返回该对象的源代码。只有 Gecko 核心的浏览器(比如 Firefox)支持该方法,也就是说 IE、Safari、Chrome、Opera 等浏览器均不支持该方法。

复制代码
      function employee(name,job,born){
        this.name=name;
        this.job=job;
        this.born=born;
      }
      var bill=new employee("Bill Gates","Engineer",1985);

      document.write(bill.toSource());
复制代码

 

  (11)、toString() :方法可把数组转换为字符串,并返回结果。返回值与没有参数的 join() 方法返回的字符串相同。

      var arr = new Array(3)
      arr[0] = "麦卡斯考菲的"
      arr[1] = "老白"
      arr[2] = "小粉"

      document.write(arr.toString())

  

  (12)、toLocaleString():把数组转换为本地字符串。

      var arr = new Array(3)
      arr[0] = "T-bag"
      arr[1] = "沙克"
      arr[2] = "考辛斯"

      document.write(arr.toString())

 

  (13)、unshift():向数组的开头添加一个或更多元素,并返回新的长度。unshift() 方法将把它的参数插入数组的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。

     下面我们做一个小例子:

复制代码
      var arr = new Array()
      arr[0] = "T-bag"
      arr[1] = "沙克"
      arr[2] = "考辛斯"

      document.write(arr + "<br />")
      //在这里使用unshift()方法添加一个新的人物
      document.write(arr.unshift("莫兰") + "<br />")
      document.write(arr)
复制代码

转载于:https://www.cnblogs.com/wykid/p/8245313.html

相关文章:

  • 【QA5】【mysql问题】ERROR 1045 (28000): Access denied for...
  • 12.22 php-fpm慢执行日志
  • SIGTERM SIGINT
  • 3分钟实操机器学习原理,这里有一个不挑人的模型 | 包教包会
  • nginx负载均衡与反向代理配置文件分析实例
  • 第 26 章 MySQL
  • 如何确保SWF文件Hash值相同
  • 2017JavaScript框架战报——React分战场
  • 整理Java基础知识--Character类
  • 网上购物系统(Task005)——通用数据库访问函数集SqlHelper类
  • mysql 密码重置
  • 微软产品组里的十一类人
  • window10转Windows7
  • java生成缩略图
  • Docker 运行 jar
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【css3】浏览器内核及其兼容性
  • 10个最佳ES6特性 ES7与ES8的特性
  • Codepen 每日精选(2018-3-25)
  • CODING 缺陷管理功能正式开始公测
  • Docker容器管理
  • Fundebug计费标准解释:事件数是如何定义的?
  • httpie使用详解
  • JavaScript 基础知识 - 入门篇(一)
  • JavaScript新鲜事·第5期
  • Leetcode 27 Remove Element
  • React-flux杂记
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • unity如何实现一个固定宽度的orthagraphic相机
  • 彻底搞懂浏览器Event-loop
  • 对JS继承的一点思考
  • 关于extract.autodesk.io的一些说明
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 异常机制详解
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 说说我为什么看好Spring Cloud Alibaba
  • ​ArcGIS Pro 如何批量删除字段
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​虚拟化系列介绍(十)
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #Linux(make工具和makefile文件以及makefile语法)
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $NOIp2018$劝退记
  • (Java)【深基9.例1】选举学生会
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (vue)页面文件上传获取:action地址
  • (ZT)出版业改革:该死的死,该生的生
  • (二)丶RabbitMQ的六大核心
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (区间dp) (经典例题) 石子合并
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考