JavaScript 数据结构与算法(二)数组

几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构。
数组通常情况下用于存储一系列同一种数据类型的值。
但在 JavaScript 里,数组中可以保存不同类型的值。但我们还是要遵守最佳实践,别这么做(大多数语言都没这个能力)。

创建和初始化数组

  • new Array()

    const daysOfWeek = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"
    );
    
  • []

    const daysOfWeek = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday",
    ];
    

数组常见操作

添加元素

  • 添加一个元素到数组的最后位置 array.push(item)
  • 在数组首位插入一个元素 array.unshift(item)
  • 在指定索引位置插入元素 array.splice(index, 0, item)

    splice() 第二个参数为 0 时,表示插入数据。

    let myArray = [1, 2, 3];
    // 在 索引 0 的位置,插入 A
    myArray.splice(0, 0, "A");
    console.log(myArray); //--> ['A', 1, 2, 3]
    

删除元素

  • 删除数组最后的元素 array.pop(item)
  • 删除数组首位的元素 array.shift(item)
  • 删除指定索引位置的元素 array.splice(start, number)
    例如:

    let myArray2 = [1, 2, 3, 4, 5];
    // 删除索引 4 位置起,2 个元素
    myArray2.splice(4, 2);
    console.log(myArray2); //--> [1, 2, 3]
    

修改元素

  • 修改指定索引位置的元素 array.splice(index, 1, item)

    let myArray3 = [1, 2, 3, 4, 5, 6];
    // 修改 索引 1 的位置的元素为 AA
    myArray2.splice(1, 1, "AA");
    console.log(myArray3); //--> [1, "AA", 3, 4, 5, 6]
    
  • 修改指定索引位置的几个元素 array.splice(index, number, item)
    let myArray4 = [1, 2, 3, 4, 5, 6, 7];
    // 在 索引 2 的位置起,修改两个元素为 AA BB
    myArray2.splice(2, 2, "AA", "BB");
    console.log(myArray3); //--> [1, 2, "AA", "BB", 5, 6, 7]
    

02_JavaScript数据结构与算法(二)数组相关推荐

  1. Java数据结构和算法( 二 ) ## 数组

    目录 数组综述 Java中的数组 创建数组 访问数组 初始化数组 有序数组 线性查找 二分查找 有序数组的优缺点 大O表示法(order of) 为什么不用数据解决一切 - 小结 数组综述 数组是最广 ...

  2. 数据结构与算法---稀疏数组

    数据结构与算法-稀疏数组 1.基本介绍: ​ 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 2.稀疏数组的处理方法是: ​ (1)记录数组一共有几行几列,有多少个 ...

  3. JavaScript数据结构和算法简述——数组

    为什么先讲数组 数据结构可以简单的被分为线性结构和非线性结构. 线性结构大致包括: 数组(连续存储): 链表(离散存储): 栈(线性结构常见应用,由链表或数组增删和改进功能实现): 队列(线性结构常见 ...

  4. 从零开始学数据结构和算法(二)线性表的链式存储结构

    链表 链式存储结构 定义 线性表的链式存储结构的特点是用一组任意的存储单元的存储线性表的数据元素,这组存储单元是可以连续的,也可以是不连续的. 种类 结构图 单链表 应用:MessageQueue 插 ...

  5. 数据结构与算法:二叉搜索树

    ✨数据结构与算法:二叉搜索树

  6. 【数据结构与算法】数组与链表

    数组的定义和特性 数组(Array)是一种线性表数据结构.它用一组连续的内存空间,来存储一组具有相同类型的数据. 线性表(Linear List):数组.链表.队列.栈 非线性表:树 图 连续的内存空 ...

  7. 数据结构与算法--二叉堆(最大堆,最小堆)实现及原理

    二叉堆(最大堆,最小堆)实现及原理 二叉堆与二叉查找树一样,堆也有两个性质,即结构性质和堆性质.和AVL树一样,对堆的一次操作必须到堆的所有性质都被满足才能终止,也就是我们每次对堆的操作都必须对堆中的 ...

  8. 基础夯实:基础数据结构与算法(二)

    基础夯实:基础数据结构与算法(二) 常见的10种算法 1.递归算法 例题1:计算n! 例题2:斐波那契数列 例题3:递归将整形数字转换为字符串 例题4:汉诺塔 例题5:猴子吃桃 例题6:N皇后问题 2 ...

  9. [数据结构与算法] 串,数组和广义表

    串偏向于算法,数组和广义表偏向于理解 第四章 串.数组和广义表 4.1 串的定义 4.2 案例引入 4.3 串的类型定义,存储结构及运算 4.3.1 **串的类型定义** 4.3.2 串的存储结构 4 ...

最新文章

  1. Google Guava Collections 使用介绍
  2. python中copy模块的使用,深拷贝和浅拷贝
  3. 控制ftp访问时间段
  4. 关于Android ViewPager 与 Fragment 一起使用碰到的问题
  5. 山东大学linux实验四CSDN,山东大学操作系统实验报告材料4进程同步实验
  6. 桂林理工计算机与科学技术,桂林理工大学信息科学与工程学院
  7. java 在主方法中定义两个变量 调用方法进行加10_计算机考试二级考试Java模拟试题附答案...
  8. 炒股如果亏损一直买入可行吗
  9. Java保留2位小数(六种方法)
  10. lzg_ad:XPE中的EWF分区设置说明
  11. 1.1【气宇轩昂】《踏雪》
  12. 黑无止境移动安全“漏洞”
  13. echarts加载世界地图并展示个人数据
  14. JVM中的本地内存追踪NMT(Native Memory Tracking)
  15. Visio页面的虚线怎么去掉
  16. 图像处理:推导Canny边缘检测算法
  17. 浏览器原理及HTTP网络协议基础简答题
  18. debian的几个lib源_Linux各个文件夹的主要作用 (源地址
  19. linux安装的库文件,linux – 安装包库和头文件在哪里?
  20. 【机器学习】adaboost算法

热门文章

  1. 短路保护、过载保护、零压保护的概念
  2. cread and close
  3. python字典找出年龄最大的人_python找出字典中value最大值的几种方法
  4. 卡通小人的眼睛跟着鼠标动
  5. OpenShift 4 - 从 1.3G 到 50M,以最小化的可执行程序运行 Quarkus 微服务
  6. 2022年山东省职业院校技能大赛高职组“网络系统管理”赛项规程
  7. CentOS8 NFS配置部署
  8. Ardupilot 串口代码学习
  9. Python量化交易平台QMT: 极速策略交易系统一体化交易解决方案
  10. 信道仿真之加一定信噪比的带限高斯白噪声