JavaScript中的索引数组、关联数组和静态数组、动态数组讲解

JavaScript中常见的数组类型主要有四种:索引数组、关联数组、静态数组和动态数组。

索引数组

索引数组是最基本的数组类型,其下标由数字表示,从0开始依次递增。

创建索引数组可以通过以下方式:

const arr = [1, 2, 3];

访问和修改索引数组中的元素可以通过下标进行:

const arr = [1, 2, 3];

arr[0]; // 返回1
arr[1] = 4; // 把第二个元素修改为4

关联数组

关联数组是以字符串为下标的数组,也可以叫做哈希表或字典。在JavaScript中,可以使用对象来模拟关联数组。

创建关联数组可以通过以下方式:

const obj = { name: 'John', age: 20 };

访问和修改关联数组中的元素可以通过属性名进行:

const obj = { name: 'John', age: 20 };

obj.name; // 返回'John'
obj.age = 21; // 把age属性修改为21

静态数组

静态数组是指在创建数组时就确定了其长度,不支持动态添加和删除元素。

创建静态数组可以通过以下方式:

const arr = new Array(3);

初始化静态数组可以通过下标进行:

const arr = new Array(3);

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

动态数组

动态数组是指在创建数组时不需要确定其长度,可以根据需要动态添加和删除元素。

创建动态数组可以通过以下方式:

const arr = [];

向动态数组中添加元素可以使用push方法:

const arr = [];

arr.push(1);
arr.push(2);
arr.push(3);

从动态数组中删除元素可以使用pop方法:

const arr = [1, 2, 3];

arr.pop(); // 删除最后一个元素3

示例说明

示例一:使用关联数组统计单词出现次数

const str = 'the quick brown fox jumps over the lazy dog';
const words = str.split(' ');
const count = {};

for (let i = 0; i < words.length; i++) {
  const word = words[i];
  if (!count[word]) {
    count[word] = 0;
  }
  count[word]++;
}

console.log(count);

运行结果为:

{
  the: 2,
  quick: 1,
  brown: 1,
  fox: 1,
  jumps: 1,
  over: 1,
  lazy: 1,
  dog: 1
}

示例二:使用动态数组实现栈

class Stack {
  constructor() {
    this.array = [];
  }

  push(item) {
    this.array.push(item);
  }

  pop() {
    return this.array.pop();
  }

  peek() {
    return this.array[this.array.length - 1];
  }

  isEmpty() {
    return this.array.length === 0;
  }
}

const stack = new Stack();

stack.push(1);
stack.push(2);
stack.push(3);

console.log(stack.peek()); // 输出3

stack.pop();

console.log(stack.peek()); // 输出2

运行结果为:

3
2

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中的索引数组、关联数组和静态数组、动态数组讲解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript获取中英文混合字符串长度的方法示例

    哦,好的!那我来详细讲解一下“JavaScript获取中英文混合字符串长度的方法示例”的完整攻略。 什么是中英文混合字符串? 所谓中英文混合字符串,是指字符串中既包含中文字符,也包含英文字符。 获取中英文混合字符串长度的方法 JavaScript 中提供了多种方法来获取字符串长度,但对于中英文混合字符串,有些方法并不能完全正确地计算其长度。下面介绍两种可行的…

    JavaScript 2023年5月28日
    00
  • JavaScript Base64 作为文件上传的实例代码解析

    当我们需要在网页上进行文件上传操作时,在客户端与服务端之间进行数据的传输会遇到一些问题,其中最主要的一点就是兼容性问题。为解决这一问题,我们可以将文件内容转换为Base64编码的字符流,以字符串的形式传输到服务端,再由服务端进行解码,即可实现文件上传操作。 下面是JavaScript Base64 作为文件上传的实例代码解析: 一、将文件转成Base64编码…

    JavaScript 2023年5月27日
    00
  • JavaScript避免嵌套代码浅析

    JavaScript的代码嵌套是我们在编程过程中经常会遇到的一个情况。虽然在语法上我们可以嵌套无数层代码,但实际上,嵌套层次过深会极大地影响代码的可读性和可维护性。这里我们就来浅析一下JavaScript如何避免嵌套代码的问题。 使用function 在JavaScript中,可以通过将一段代码封装到一个函数中来达到避免嵌套代码的目的。这样可以把复杂的代码逻…

    JavaScript 2023年6月10日
    00
  • JS实现的Object数组去重功能示例【数组成员为Object对象】

    下面是讲解“JS实现的Object数组去重功能示例【数组成员为Object对象】”的完整攻略。 一、背景介绍 在实际的开发过程中,我们经常会操作Object数组。而有时候,我们需要对一个Object数组进行去重操作,以避免出现重复数据。接下来,我们将会介绍针对这种情况下的JS实现的Object数组去重功能示例。 二、数组去重算法 去重算法是数组去重的核心,根…

    JavaScript 2023年5月27日
    00
  • JS实现添加缓动画的方法

    下面是JS实现添加缓动动画的方法的完整攻略: 什么是缓动动画? 缓动动画指的是在动画过程中,物体的速度从快到慢,或者从慢到快,而不是始终以相同的速度运动。缓动动画通常可以提高用户体验,使动画看起来更平滑、自然。 实现缓动动画的方法 使用JS实现缓动动画可以有多种方法,下面介绍其中两种。 方法一:简单的缓动动画实现 简单的缓动动画实现方法比较容易理解,下面的代…

    JavaScript 2023年6月10日
    00
  • 浅谈javascript中的prototype和__proto__的理解

    浅谈Javascript中的prototype和__proto__的理解 Javascript中有两个与对象原型相关的概念——prototype和__proto__,它们在原型继承和对象属性访问时作用重要。下面我们详细讲解它们的理解。 1. prototype prototype是一个对象,它存在于每一个函数(function)中。当我们使用new关键字来调…

    JavaScript 2023年5月27日
    00
  • JavaScript数组对象高阶函数reduce的妙用详解

    JavaScript数组对象高阶函数reduce的妙用详解 什么是reduce方法 reduce是数组对象的高阶函数之一。它能够迭代数组中的所有元素,并将它们汇聚成一个单一的值。 reduce方法的语法如下: array.reduce(callback[, initialValue]) 其中,callback是一个回调函数,在数组中每个元素上被调用,并且输入…

    JavaScript 2023年6月10日
    00
  • js实现获取当前时间是本月第几周的方法

    获取当前日期是本月第几周可以使用JavaScript中Date对象中的一些方法来实现。下面是具体的实现方法以及示例说明: 获取当前时间 在JavaScript中通过创建一个Date对象来获取当前的时间,可以使用new关键字和Date构造函数来创建一个Date对象: const now = new Date(); 获取当前时间的月份以及日期 获取当前时间所在的…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部