《前端之路》之三 数组的属性 && 操作方法(上)
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 ...
随机推荐
- Centos7 修改硬件时间和系统时间
查看系统时间 [root@localhost ~]# date Tue Jun 13 10:20:13 CST 2017 查看硬件时间 [root@localhost ~]# hwclock --sh ...
- php一些需要注意的点
1,类的自动加载: spl_autoload_register(function ($class_name) { require_once $class_name . '.php';}); autol ...
- 如何去掉word中的回车符??
打开word界面,点击页面左上角的"文件"按钮,进入到文件栏目中,进行设置. 进入文件之后,在左下角找到并点击"选项",进入到word的设置界面中 进入到wor ...
- 【Never Stop】联赛集训记录
始于10/01/2017. Day I: T2图论,没想到.T3谜一样DP(是从来没意识到还可以这样). rank10. 下午刷了点题,CDQ也只打出一个板子,感觉自己不在状态? ========== ...
- PCB泪滴设计
操作:选择[Tools]-->[Teardrops],快捷键T+E.打开[Teardrop Options]对话框进行设置.如下图所示: 对话框面板介绍 [General] 1.该区域的[Pad ...
- EffictiveC++笔记 第3章
Chapter 3 资源管理 条款13: 以对象管理资源 有时即使你顺利地写了对应对象的delete语句,但是前面的区域可能会有一个过早的return语句或者抛出了异常.它们一旦执行,控制流绝不会触及 ...
- Go语言中的面向对象
前言 如果说最纯粹的面向对象语言,我觉得是Java无疑.而且Java语言的面向对象也是很直观,很容易理解的.class是基础,其他都是要写在class里的. 最近学习了Go语言,有了一些对比和思考.虽 ...
- java基础系列之ConcurrentHashMap源码分析(基于jdk1.8)
1.前提 在阅读这篇博客之前,希望你对HashMap已经是有所理解的,否则可以参考这篇博客: jdk1.8源码分析-hashMap:另外你对java的cas操作也是有一定了解的,因为在这个类中大量使用 ...
- 启动VMware虚拟机时总是出现许可证到期提示怎么办?
不知道大家有没有遇到过这个问题,每次当你打开VMware虚拟机时它总是会提示许可证到期,需要注册,还会出现许多报红的代码,下面就让小编带大家解决一下吧~ VMware教程 如果Fusion本身无法启动 ...
- Python 转化成 PB 格式数据
一.概述 Protocol Buffers 是 Google 公司开发的一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯 ...