网站首页 > 技术文章 正文
数组可以说是JS中最常用的数据类型之一了,JS中的数组与其他语言一样都是数据的有序列表。但有所不同的是,JS数组中每一项都可以保存任何类型的数据,这也就意味着,一个数组可以同时保存string、number、object等类型的数据。
数组的定义就不在这里多说了,下面来说一下数组常用的操作以及一些容易忽略的细节。
length属性
length属性可用于读取数组的长度,这个众所周知。但是length属性并不是只读属性。通过设置属性值,可以做到从数组末尾移除或者向数组中添加新项。例如,新建一个长度为3的数组,然后将length属性设置为4,此时输出数组长度则为4,此时 myArr[3] 的值为 undefined。同样,若设置 myArr.length=2,则会移除次数组中的“arr3”项。
Array.isArray(value)方法
此方法用于检测传入的value值是否为数组。若是,则返回true;否,则返回false。如下图所示:定义数组myArr,在实行Array.isArray()方法时,返回true,而定义的sun为number类型,执行此方法则返回false。
toString()、toLocaleString()、valueOf()
所有对象都具有这三种方法。此处我们只讨论数组调用这三种方法的表现形式。先看代码示例:
通过代码可以看出,调用valueOf()方法返回的结果仍然是数组的形式;调用数组的toString()方法和toLocaleString()方法在此处的输出结果上是没有任何区别的,但并不总是如此,看下面的代码:
此时,两种方法的输出结果并不相同。这是因为,alert()要接收字符串参数,在获取每一项值的时候,alert()和toString()方法执行的时每一项的toString()方法,而toLocaleString()调用的时每一项的toLocaleString()方法。
栈方法
栈是一种非常常用的数据结构,它遵从LIFO(Last-In-First-Out,后进先出)原则。栈的插入和移除只能从栈顶进行。在JS中也提供了专门的方法。使数组实现类似栈的行为。
push( ):可以接收任意数量的参数,将接收的数据添加到数组末尾,并返回修改后的数组长度。
pop( ):从数组末尾移除最后一项,修改数组的length属性值,并返回移除的项。
队列方法
栈遵从LIFO原则,而队列则遵从FIFO(First-In-First-Out,先进先出)原则。队列在数据列表的末端添加新项,从列表的头部移除项。在JS中,因为push() 方法已经实现向数组末端添加项,因此只需实现从数组头部移除项的方法,便可以模拟队列的操作。实现此操作的方法是shift()方法。
JS还提供了unshift()方法,与shift()方法功能相反,它可以在数组的头部添加任意个项并返回新数组的长度。因此,unshift()和pop()方法结合使用,可以实现方向模拟队列操作,用法同上,不再举例描述~
未完待续~~~
“猿叨叨”欢迎您的关注,同时欢迎关注同名微信公众平台进行交流讨论~
【转载请注明出处】
猜你喜欢
- 2024-09-08 「JavaScript 从入门到精通」10.数组
- 2024-09-08 JS——数组的方法 & 高阶函数
- 2024-09-08 Javascript中的内置对象—数组(javascript内置对象应用的)
- 2024-09-08 js数组方法笔记(js的数组)
- 2024-09-08 JavaScript 数组元素的一些操作(javascript中数组)
- 2024-09-08 Javascript数组应用及场景——创建数组的N种方式详解
- 2024-09-08 详解JS数组API方法重构(js 数组 api)
- 2024-09-08 手把手教你Javascript (6)-数组(javascript10分钟速成)
- 2024-09-08 JS核心基础数组的操作概述(js数组原理)
- 2024-09-08 JavaScript操作数组的方式都有哪些
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)