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()
今天就先说到这里,下班回家~

Github地址,欢迎 Star

《前端之路》之三 数组的属性 && 操作方法(上)的更多相关文章

  1. 《前端之路》之三 数组的属性 && 操作方法(下)

    咱们 接着上篇来讲- 7.slice() 从某个已有的数组返回选定的元素 经常用来将类数组转化成数组,这样做一方面可以利用现有的数组方法更加方便的处理,另一方面是处于性能的考虑 var f = fun ...

  2. 前端 html input标签 placeholder属性 标签上显示内容

    前端 html  input标签 的placeholder属性  标签上显示内容 <!DOCTYPE html> <html lang="en"> < ...

  3. 《前端之路》- TypeScript (四) class 中各类属性、方法,抽象类、多态

    目录 一.TypeScript 中的类 二.TypeScript 中类的继承 三.TypeScript 中公共,私有与受保护的修饰符 3-1.属性的 public 3-2.属性的 private 3- ...

  4. 《前端之路》--- 重温 Egg.js

    目录 <前端之路>--- 重温 Egg.js 一.基础功能 > 日志系统包含了 四大层面的 日志对象, 分别是 App Logger.App CoreLogger.Context L ...

  5. 《前端之路》之 Javascript 模块化管理的来世今生

    目录 第二章 - 04: Javascript 模块化管理的来世今生 一.什么是模块化开发 1-1.模块化第一阶段 1-2.封装到对象 1-3. 对象的优化 二.模块化管理的发展历程 2-1.Comm ...

  6. 好程序员web前端分享javascript关联数组用法总结

    好程序员web前端分享javascript关联数组用法总结,有需要的朋友可以参考下. Hash关联数组定义 代码如下 // 定义空数组 myhash = { } // 直接定义数组 myhash = ...

  7. js中Array数组的属性和方法

    这是我自己整理出来的一些关于Array数组的属性和方法,即查即用. 1.Array.length属性:数组的项数组,始终返回0或者更大的值. 2.instanceof操作符:value instanc ...

  8. springmvc后台接前端的参数,数组,集合,复杂对象等

    springmvc后台接前端的参数,数组,集合,复杂对象等 参考地址:https://blog.csdn.net/feicongcong/article/details/54705933  常用的几种 ...

  9. 《前端之路》- TypeScript (三) ES5 中实现继承、类以及原理

    目录 一.先讲讲 ES5 中构造函数(类)静态方法和多态 1-1 JS 中原型以及原型链 例子一 1-2 JS 中原型以及原型链中,我们常见的 constructor.prototype.**prot ...

随机推荐

  1. 爬取拉勾网招聘信息并使用xlwt存入Excel

    xlwt 1.3.0 xlwt 文档 xlrd 1.1.0 python操作excel之xlrd 1.Python模块介绍 - xlwt ,什么是xlwt? Python语言中,写入Excel文件的扩 ...

  2. [python3.5][PyUserInput]模拟鼠标和键盘模拟

    一.PyUserInput安装 python3.5的PyMouse和PyKeyboard模块都集成到了PyUserInput模块中.在python3.5中,直接安装PyUserInput模块即可 Py ...

  3. 传统业务上云:跨AZ容灾架构解析

    本文由  网易云发布. 数字化转型浪潮之下,采用云计算服务提升业务敏捷性.降低运维成本,成为了传统企业的优选方案.网易云资深解决方案架构师张亮通过某物流企业客户的实际案例,分享了传统业务系统在云上的架 ...

  4. 关于Random(47)与randon.nextInt(100)的区别

    参考https://blog.csdn.net/md_shmily92/article/details/44059313 相关文章random.nextInt()与Math.random()基础用法 ...

  5. Go 语言之三驾马车

    interface Go是一门面向接口编程的语言,interface的设计自然是重中之重.Go中对于interface设计的巧妙之处就在于空的interface可以被当作"Duck" ...

  6. Go-技篇第二 命名规范

    优秀的命名 优秀的命名应当是一贯的.短小的.精确的.所谓一贯,就是说同一个意义在不同的环境下的命名应当一致,譬如依赖关系,不要在一个方法中命名为depend,另一个方法中命名为rely.所谓短小,不必 ...

  7. nsq源码阅读笔记之nsqd(二)——Topic

    与Topic相关的代码主要位于nsqd/nsqd.go, nsqd/topic.go中. Topic的获取 Topic通过GetTopic函数获取 GetTopic函数用于获取topic对象,首先先尝 ...

  8. BZOJ_1058_[ZJOI2007]报表统计_STL

    BZOJ_1058_[ZJOI2007]报表统计_STL Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工 作,作为她的生日礼 ...

  9. 【转】APP功能测试要领

    也许大家从事APP功能测试已经有一段时间了,心中一定有一个疑问,怎么样才能提高测试的覆盖面呢,我今天把APP功能测试内容分为APP本身的功能,APP关联的事务.APP外部环境.APP其他四大块来给大家 ...

  10. 关于EffictiveC++笔记

    我根据自己的理解,对原文的精华部分进行了提炼,并在一些难以理解的地方加上了自己的"可能比较准确"的「翻译」.