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. android:configChanges属性
  2. 对象之间的引用传递 之 .NET中的深拷贝和浅拷贝
  3. sqlserver:同一数据库内负责表结构。
  4. Codeforces Round #245 (Div. 1) 429D - Tricky Function 最近点对
  5. android编程常见问题-No Launcher activity found!
  6. Ubuntu 安装 Courier New字体
  7. Windows下Vundle插件BundleSearch命令出现错误解决方案
  8. struct和typedef struct的用法
  9. CSS基础要点概况
  10. 最简单的入门github
  11. python selenium 环境搭建(一)
  12. 在SpringBoot中配置定时任务
  13. flask模板
  14. CSS盒模型深入理解
  15. react_app 项目开发_遇到的坑
  16. The Usage of Lambda and Heap in the C++ STL
  17. 洛谷 P2671 求和 解题报告
  18. 寻找自己的道路——与技术同胞共勉 一种划分为七个阶段的道路:自信=>意志=>布局=>切入点=>团队=>渠道=>产品
  19. Html使用Iframe无刷新上传文件,后台接收
  20. Java 内存模型基础

热门文章

  1. 火狐浏览器插件--xpath利器
  2. LinkedBlockingQueue简介
  3. WebP 在减少图片体积和流量上的效果如何?MIP技术实践分享
  4. vue笔记 递归组件的使用
  5. img 灰色默认外边框的去除
  6. Java实现大批量数据导入导出(100W以上) -(一)导入
  7. LaTeX 公式编辑
  8. 《前端之路》之 Babel 下一代 JavaScript 语法编译器
  9. 5.2基于JWT的令牌生成和定制「深入浅出ASP.NET Core系列」
  10. Springboot 系列(六)Spring Boot web 开发之拦截器和三大组件