《前端之路》之三 数组的属性 && 操作方法(上)
03:数组的属性 && 操作方法(上)
一、Array property 数组的属性
1、constructor
返回对创建此对象的数组函数的引用
[].constructor
// ƒ Array() { [native code] }
2、length
返回 或者 设置数组中元素的数目
const abc = ['a', 'b', 'c']
console.log(abc.length) // 3
abc.length = 2
console.log(abc) // ['a', 'b']
abc.length = 4
console.log(abc) // ["a", "b", "c", empty]
3、prototype:使您有能力向对象添加属性和方法
那么数组的 prototype 属于 就是 JS 原生带的非常多的方法。
二、Array prototype 数组的原型
这里,我们就详细的介绍下 Array prototype 数组的原型 中包含了哪些方法
1、concat()
连接两个数组,并返回结果
const a = [1,2,3,4]
const b = [5,6,7,8]
const c = a.concat(b)
// [1, 2, 3, 4, 5, 6, 7, 8]
2、join()
把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔
const a = [1,2,3,4]
const aStrin = a.join(',') // "1,2,3,4"
那么在这个原生方法中我们常常会用到的这个方法来解决一些问题, 比如调换字符串的排序
eg:
const aArray = '1,2,3,4,5,6,7'
const arrayA = aArray.split(',').reverse().join(',')
// "7,6,5,4,3,2,1"
3、pop()
删除并返回数组的最后一项
const testArray = [1,2,3,4,5,6,7]
cosnt a = testArray.pop() // 7
console.log(testArray) // [1,2,3,4,5,6]
// pop 和 push 组合成栈
4、push()
向数组的末尾添加一个或多个元素,并返回数组的新长度
const a = [12,123,1234]
var l = a.push(12345)
console.log(l) // 4
console.log(a) // [12, 123, 1234, 12345]
5、shift()
删除并返回数组的第一个元素
const a = [1,2,23,44,55,66]
const b = a.shift()
console.log(b) // 1
console.log(a) // [2, 23, 44, 55, 66]
6、unshift()
向数组的开头添加一个或多个元素,并返回新的长度
const a = [1,2,23,44,55,66]
const b = a.unshift('add')
const c = a.unshift('add', 'second')
console.log(b) // 7
console.log(a) // ["add", 1, 2, 23, 44, 55, 66]
console.log(c) // 8
console.log(a) // ["add", "second", 1, 2, 23, 44, 55, 66]
利用以上的方法 去实现 栈、队列、反向队列
首先解释下 栈、队列、反向队列 分别是什么意思?
1、栈
栈: 作为一种数据结构,是一种只能从一端进行数据的增减或者删除。 即所谓的先进者后出 (水杯)
eg:
var stack = []
stack.push(1)
var item = stack.pop()
2、队列
队列: 我们可以和 栈 进行对比,即为:只能够在 表的前端进行删除,只能够在表的后端进行插入操作. 即 先进者先出 ( 推-注射器 )
eg:
var queue = []
queue.push(1)
queue.shift()
3、反向队列
反向队列: 我们可以和 队列 进行对比,即为:只能够在 表的后端进行删除,只能够在表的前端进行插入操作. 即 先进者后出 ( 吸-注射器 )
eg:
var reverseQueue = []
reverseQueue.unshift(1)
var item = reverseQueue.pop()
今天就先说到这里,下班回家~
《前端之路》之三 数组的属性 && 操作方法(上)的更多相关文章
- 《前端之路》之三 数组的属性 && 操作方法(下)
咱们 接着上篇来讲- 7.slice() 从某个已有的数组返回选定的元素 经常用来将类数组转化成数组,这样做一方面可以利用现有的数组方法更加方便的处理,另一方面是处于性能的考虑 var f = fun ...
- 前端 html input标签 placeholder属性 标签上显示内容
前端 html input标签 的placeholder属性 标签上显示内容 <!DOCTYPE html> <html lang="en"> < ...
- 《前端之路》- TypeScript (四) class 中各类属性、方法,抽象类、多态
目录 一.TypeScript 中的类 二.TypeScript 中类的继承 三.TypeScript 中公共,私有与受保护的修饰符 3-1.属性的 public 3-2.属性的 private 3- ...
- 《前端之路》--- 重温 Egg.js
目录 <前端之路>--- 重温 Egg.js 一.基础功能 > 日志系统包含了 四大层面的 日志对象, 分别是 App Logger.App CoreLogger.Context L ...
- 《前端之路》之 Javascript 模块化管理的来世今生
目录 第二章 - 04: Javascript 模块化管理的来世今生 一.什么是模块化开发 1-1.模块化第一阶段 1-2.封装到对象 1-3. 对象的优化 二.模块化管理的发展历程 2-1.Comm ...
- 好程序员web前端分享javascript关联数组用法总结
好程序员web前端分享javascript关联数组用法总结,有需要的朋友可以参考下. Hash关联数组定义 代码如下 // 定义空数组 myhash = { } // 直接定义数组 myhash = ...
- js中Array数组的属性和方法
这是我自己整理出来的一些关于Array数组的属性和方法,即查即用. 1.Array.length属性:数组的项数组,始终返回0或者更大的值. 2.instanceof操作符:value instanc ...
- springmvc后台接前端的参数,数组,集合,复杂对象等
springmvc后台接前端的参数,数组,集合,复杂对象等 参考地址:https://blog.csdn.net/feicongcong/article/details/54705933 常用的几种 ...
- 《前端之路》- TypeScript (三) ES5 中实现继承、类以及原理
目录 一.先讲讲 ES5 中构造函数(类)静态方法和多态 1-1 JS 中原型以及原型链 例子一 1-2 JS 中原型以及原型链中,我们常见的 constructor.prototype.**prot ...
随机推荐
- TestNG 相对路径与绝对路径getResourceAsStream
以下内容引自: http://blog.csdn.net/zmx729618/article/details/51144588 (注: 此url并非原出处,该文章也是转自他人.但博主未注明出处) Ja ...
- 在Mybatis-spring上基于注解的数据源实现方案
一.遇到的痛点 最近在学习Spring-boot过程中,涉及到操作数据库.按照DOC引入mybatis-spring-boot-starter,然后按照套路配置application.properti ...
- BZOJ_1098_[POI2007]办公楼biu_链表优化BFS
BZOJ_1098_[POI2007]办公楼biu_链表优化BFS Description FGD开办了一家电话公司.他雇用了N个职员,给了每个职员一部手机.每个职员的手机里都存储有一些同事的 电话号 ...
- ssh 隧道
SSH 隧道转发实战 大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的需求以及在网上查找的资料配合自己的实际操作 ...
- 死磕 java集合之LinkedTransferQueue源码分析
问题 (1)LinkedTransferQueue是什么东东? (2)LinkedTransferQueue是怎么实现阻塞队列的? (3)LinkedTransferQueue是怎么控制并发安全的? ...
- 【STM32H7教程】第7章 STM32H7下载和调试方法(IAR8)
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第7章 STM32H7下载和调试方法(IAR8) 本 ...
- 【官网翻译】性能篇(四)为电池寿命做优化——使用Battery Historian分析电源使用情况
前言 本文翻译自“为电池寿命做优化”系列文档中的其中一篇,用于介绍如何使用Battery Historian分析电源使用情况. 中国版官网原文地址为:https://developer.android ...
- spring JdbcTemplate 在itest 开源测试管理项目中的浅层(5个使用场景)封装
导读: 主要从4个方面来阐述,1:背景:2:思路:3:代码实现:4:使用 一:封装背景, 在做项目的时候,用的JPA ,有些复杂查询,比如报表用原生的JdbcTemplate ,很不方便;传参也不方便 ...
- pytest-allure-poco之allure全量详细用法
allure简介 Allure Framework是一个灵活的轻量级多语言测试报告工具.貌似是目前最漂亮的一个报告工具 python版本及必要库或工具 python 3.7 pytest 4.3.1 ...
- 安全研究 | Jenkins 任意文件读取漏洞分析
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...