位置: 编程技术 - 正文

JavaScript之数组(Array)详解(javascript数组有哪些方法)

发布时间:2024-02-27

推荐整理分享JavaScript之数组(Array)详解(javascript数组有哪些方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript中数组的方法,javascript数组操作,javascript数组操作方法,javascript 数组,javascript 数组,js数组entries,javascript数组操作方法,javascript数组操作方法,内容如对您有帮助,希望把文章链接给更多的朋友!

ECMAScript的数组与其他语言中的数组有着相当大的区别。虽然ECMAScript中的数组也是有序列表,但是它数组你的每一项可以保存任何类型的数据。ECMAScript数组的大小是可以动态调整的。 创建数组的基本方式有两种。第一种是使用Array构造函数,如下所示: 如果知道数组要保存的项目数量,也可以给构造函数传递参数,而该参数会自动变成length属性的值,如下: 也可以向Array构造函数中传递数组中应包含的项,如下代码所示: 另外,使用Array构造函数时也可以省略new操作符,如下所示: 创建数组的第二种方式是使用数组字面量表示法。数组字面量由一对包含数组项的方括号表示,多个数组项之间用逗号隔开,如下所示: 与对象一样,在使用数字字面量表示法时,也不会调用Array的构造函数。 在读取和设置数组的值时,要使用方括号并提供相应值的基于0的数字索引,如下所示: 数组的项数保存在其length属性中,这个属性始终会返回0或更大的数字,如下所示: 值得注意的是,数组的length值不是只读的。因此,通过设置此值,可以从数组的末尾移出项或向数组添加项,如下: 利用length属性也可以方便的向数组末尾添加数据:

1、检测数组

对于一个网页或一个全局作用域而言,使用instanceof操作符可以做到: instanceof操作符局限性在于全局作用域,如果网页包含多个框架,就存在两个以上的全局执行环境。为了解决这个问题,ECMAScript5新增了Array.isArray()方法,使用如下:

2、转化方法 调用数组的toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。而调用valueOf()返回还是数组。如下所示: 数组继承的toLocalString()、tiString()和valueOf()方法,在默认情况下都会以逗号分隔符的字符串形式返回数组项。而如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。join()方法只接受一个参数,即用作分隔符的字符串,如下所示: 如果数组中的某一项值为null或者undefied,那么该值在join()、toLocalString()、tiString()和valueOf()方法返回结果以空字符串表示。

3、栈方法

Javascript专门为数组提供了push()和pop()操作,以便实现类似栈的行为。

push()方法可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度。pop()方法则从数组末尾溢出最后一项,减少数组的length值,然后返回移出的项。

4、队列方法

栈数据结构的访问规则是LIFO(后进先出),而队列的访问规则是FIFO(先进先出)。队列在列表末端添加项,在前端移出项。

shift()方法能够移除数组中的第一项,并返回该项,数组的length-1。结合push()和shift()方法,可以像使用队列一样使用数组,如下所示:

ECMAScript还为数组提供了unshift()方法。unshift()和shift()方法用途相反:它在数组前端添加任意个项并返回新数组的长度。因此,同时使用unshift()和shift()方法,可以从相反方向来模拟队列,即在数组前端添加新项,从数组末端移出项,如下所示:

JavaScript之数组(Array)详解(javascript数组有哪些方法)

5、重排序方法 数组中已经存在两个可以直接用来重排序的方法:reverse()和sort()。reverse()方法会按照反转数组项的排序。 默认情况下,sort()方法按照升序排列数组项,调用每一项的toString()方法,比较字符串,以确定如何排序。即使数组中的每一项都是数值,sort()方法比较的都是字符串。 我们可以通过一个比较函数当作参数传递给sort()方法。如下:

6、操作方法 ECMAScript为操作在数组中提供了很多方法。其中,concat()方法可以基于当前数组中的所有项创建一个新数组。 slice()方法,它能够基于当前数组的一个项或多个项创建新数组,它可以接收一个或两个参数,即要返回项的起始和结束位置。一个参数时,返回该参数指定位置开始到当前数组末尾的所有项。两个参数则返回起始到指定位置的所有项——不包括结束位置的项。注意,slipe()方法不影响原始数组。 slice()方法删除:可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数。 slice()方法插入:可以向指定位置插入任意数量的项,只需提供3个参数:起始位置、0(要删除的项数)和要插入的项。 slipe()方法替换:可以项指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3个参数:起始位置、要删除的项数和要插入的任意数量的项。

7、位置方法 ECMAScript5为数组提供了两个位置方法:indexOf()和lastIndexOf()。这两个方法都接收两个参数:要查找的项和表示查找起点位置的索引(可选)。其中indexOf()方法从数组的开头开始先后查找,lastIndexOf()方法则从数组的末尾开始向前查找。 这两个方法都返回要查找的项在数组中的位置,在没有找到的情况下返回-1。8、迭代方法

ECMAScript5为数组定义了5个迭代方法。每个方法都接受两个参数,第一个是进行迭代的函数,第二个是该函数的作用域对象【可选】。

进行迭代的函数接受三个参数,第一个是数组中要进行迭代的元素的值,第二个是数组候总要进行迭代的元素的位置,第三个是迭代数组本身。

1. every() 对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true 2. filter() 对数组中的每一项运行给定的函数,返回该函数返回true的项组成的数组。 3. forEach() 对数组中的每一项运行给定的函数,这个方法没有返回值 4. map() 对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组 5. some() 对数组中的每一项运行给定的函数,如果该函数对任意一项返回true,则返回true 这些迭代方法支持的浏览器有,IE9+,Firefox2+,Safari3+,Opera 9.5+,chrome 在这些方法中,最相似的是every()和some(),它们都是用于查询数组中的项是否满足某个条件。对every()来说,传入的函数必须对每一项都返回true,这个方法才返回true;否则,他就返回false。而some()方法则是只要传入的函数对数组中某一项返回true,就返回true。

filter()是利用指定的函数确定是否在返回的数组中包含某一项。

map()也返回一个数组,而这个数组的每一项都是在原始数组中的对应项上运行传入函数的结果。

forEach()是对数组中的每一项运行传入的函数。这个方法没有返回值,本质上与使用for循环迭代数组一样。

9、归并方法

ECMAScript5中新增了两个方法:reduceRight() 和 reduce()。这两个方法都接受两个参数:第一个是用来迭代的数组的函数,这个函数有四个参数分别是,前一个值,当前值,项的索引,数组对象。然而这个函数的任何值都会作为第一个参数自动传给下一项。第二个是作为第一个函数中第一个参数的初始值 。

JavaScript数据类型详解 数据类型JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂数据类型——Object,Object本质上是由一

JavaScript数据类型之基本类型和引用类型的值 ECMAScript变量包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值是简单的数据段,而引用类型值指那些可能由多个值构成的对象。在将

深入探讨JavaScript String对象 String字符串对象1.介绍String对象,对字符串进行操作,如:截取一段子串、查找字符串/字符、转换大小写等等。2.定义方式2.1newString(Value)构造函数:返

标签: javascript数组有哪些方法

本文链接地址:https://www.jiuchutong.com/biancheng/382846.html 转载请保留说明!

上一篇:JS 作用域与作用域链详解(js作用域和作用域链的理解阮一峰)

下一篇:JavaScript数据类型详解(JavaScript数据类型)

  • 房产税的计算公式是多少
  • 企业出售房产要交哪些税
  • 企业股权转让影响利润吗
  • 一般纳税人旧货
  • 自产农产品免征增值税
  • 税收的性质是哪一项
  • 新领的发票怎么导入uk开票系统
  • 回迁房项目的会计和税务处理
  • 印章刻字怎么收费
  • 其他应交款入哪个科目
  • 个人收到的国外短信
  • 销售企业需要交的营业税
  • 土地款印花税计入无形资产吗
  • 印花税计提比例是多少
  • 购进建筑服务进项税额
  • 小规模自开专票怎么交税
  • 公司发放的车补扣个人所得税吗
  • 金银制成的金银币及摆件是否征收消费税?
  • 给员工购买的意外保险可以税前扣除
  • 清华同方笔记本怎么进入u盘启动
  • 财务预提
  • 股票属于以下哪一类金融工具
  • msconfig配置文件
  • PHP:Memcached::touchByKey()的用法_Memcached类
  • mac桌面的东西怎么放回去
  • 原材料按实际成本核算的会计处理
  • 购买农产品没有承担增值税为什么还要计算抵扣
  • php中如何获取数组的长度
  • 期间费用转入本年利润
  • 微信小程序不方便
  • 预付购买材料款属于什么会计科目
  • 航空业燃油附加率是多少
  • 桥梁水泥和普通水泥有什么区别
  • 机票报账行程单怎么打印
  • linux 高并发网络编程
  • 土地成本会计分录
  • 丧葬补贴金和抚恤金怎样领取
  • 中药饮片盘点误差范围
  • 应交税费未交增值税
  • 金蝶软件资产负债表公式设置
  • .dot python
  • 运用java解决的实际问题
  • mongodb视频教程
  • 帝度官网 说明书
  • 租车出差差旅费标准
  • 货款必须对公帐户支付吗
  • 个体升一般纳税人的界限
  • 建筑行业会计做账流程及会计分录
  • 纳税人减免税申请表怎么填
  • 支付给个人的佣金如何代扣个税
  • 金蝶财务软件固定资产
  • 安装生产流水线工程领用原材料
  • 以自营方式建造固定资产
  • 清算资金往来借贷方什么意思
  • 法人章和财务章尺寸
  • 免征增值税还要计提附加税吗
  • 小规模纳税人如何缴纳企业所得税
  • 对公账户有资金往来必须入账吗
  • 在solaris8下
  • win7偶尔黑屏
  • mac系统锁屏
  • centos文件备份
  • xp怎么装系统步骤图解
  • win8 资源管理器
  • shcore.dll干啥用
  • win xp系统安装
  • 虚拟机打不开linux
  • win7系统浏览器版本老怎么升级
  • windows10用法
  • linux中find命令用法
  • 常用的加锁方式
  • 问题少年特训学校
  • 网页制作颜色搭配
  • python语言中
  • nodejs json数据库
  • python下读取公私钥做加解密实例详解
  • javascript常见问题
  • 去伪存真栏目为什么取消啦
  • 企业如何网上申报税
  • 消费税和增值税的异同点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号