当前位置: 首页 > article >正文

伪数组和真数组的区别

真数组:

真数组具备数组方法:常用的find()、forEach()、join()等等···
他的数据类型也是Array(数组)

真数组示例:
let arr = [11, 22, 33, 44, 55]
console.log(arr);   //打印结果  [11, 22, 33, 44, 55]

下图可以清晰的看到:
在这里插入图片描述

伪数组:

伪数组不具备真数组的 比如:push 、pop 、splice 等···
他们的数据类型不相同 真数组是Arry 伪数组是object
真数组的长度是可变的,伪数组不可以
伪数组没有_proto_和prototype

伪数组示例:
function num() {
  // 打印结果伪数组=>      Arguments [Array(5), callee: ƒ, Symbol(Symbol.iterator): ƒ]
  console.log(arguments);
  fakeArr = arguments
}

num(arr)

下图可以清晰的看到:
在这里插入图片描述

真伪数组的相同点

  • 索引都从0开始依次递增
  • 都有length属性
  • 都可以通过循环来遍历

伪数组如何转换成真数组

通过这个基本的数据演示转换:

基本数据:
let arr = [11, 22, 33, 44, 55]

let fakeArr = null
function num() {
  // 打印结果伪数组=>      Arguments [Array(5), callee: ƒ, Symbol(Symbol.iterator): ƒ]
  console.log(arguments);
  fakeArr = arguments
}

num(arr)

Array.prototype.slice.call() 通过调用Array的slice的截取方法

let newArr = Array.prototype.slice.call(fakeArr)
console.log(newArr);    //打印结果真数组=>  [Array(5)]

ES6新语法Array.form() 但有兼容性问题

let newArr = Array.from(fakeArr)
console.log(newArr);   //打印结果真数组=>  [Array(5)]

通过展开运算符

let newArr = [...fakeArr]
console.log(newArr);   //打印结果真数组=>  [Array(5)]

总结:

相同点:

他们都具备数组的下标和length属性
可以通过for循环语句去循环遍历
索引都从0开始依次递增

不同点:

伪数组不具备真数组的方法 比如:push 、pop 、splice 等···
他们的数据类型不相同 真数组是Arry 伪数组是object
真数组的长度是可变的,伪数组不可以
伪数组没有_proto_和prototype


http://www.kler.cn/a/7308.html

相关文章:

  • 【51单片机】LCD1602液晶显示屏
  • 直接映射4条 cacheline,每条cacheline32位数据(混乱版)
  • React中组件通信的几种方式
  • Linux从0——1之shell编程4
  • 鸿蒙学习生态应用开发能力全景图-赋能套件(1)
  • uniapp vue3的下拉刷新和上拉加载
  • 批发进销存管理软件,商品分类管理,对商品分类批量价格管理,商品分类导入导出的操作
  • acwing1047. 糖果
  • 技术宅小伙:看看面试官都问了些什么(Java系列)
  • SpringCloud服务注册中心——Eureka
  • 华为阿里版ChatGPT横空出世,谁的成效更好呢?
  • 【云原生进阶之容器】第五章容器运行时5.2节--容器运行时接口规范CRI
  • [论文速览] Sparks of Artificial General Intelligence: Early experiments with GPT-4
  • esxi的安装配置以及新建虚拟机
  • Java核心技术知识点笔记—视图与包装器
  • 【视频分割】【深度学习】MiVOS官方Pytorch代码--Propagation模块解析
  • No.026<软考>《(高项)备考大全》【第10章】项目沟通和干系人管理(第2部分-干系人管理)
  • 【C语言进阶:自定义类型详解】枚举
  • 8个全球性编程比赛,天才程序员的梦想舞台
  • 零中频接收机中的杂散信号
  • 信息收集与运用
  • 蓝桥杯基础9:BASIC-6试题 杨辉三角形
  • 算法竞赛进阶指南0x61 最短路
  • 第一批被AI淘汰的人已经出现,你距离失业还有多远?
  • 【ansible】实施任务控制
  • 分享一个免梯子的GPT,刷题和学习的好帮手