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日

相关文章

  • 一些你可能不熟悉的JS知识点总结

    一些你可能不熟悉的JS知识点总结 理解JS中的this指向 在 Javascript 中,“this”是一个关键字,它指向函数执行时的上下文对象。在全局作用域中,“this”指向全局对象(window / global),在函数内部,“this”指向函数调用时的“拥有者”(即调用该函数的对象)。更多的用法和示例请参考以下代码: let obj = { nam…

    JavaScript 2023年5月28日
    00
  • VueCli3中兼容IE11配置的艰苦历程

    下面是详细的“VueCli3中兼容IE11配置的艰苦历程”的完整攻略: 第一步:安装依赖和设置babel 在项目根目录下,通过以下命令安装两个依赖: npm install babel-loader@8.0.0-beta.0 @babel/core @babel/preset-env webpack –save-dev 这里我们使用了babel-loade…

    JavaScript 2023年6月11日
    00
  • 解析利用javascript如何判断一个数为素数

    要判断一个数是否为素数,我们可以使用数学方法,也可以通过编程实现。在Javascript中,我们可以用以下代码实现判断一个数是否为素数: function isPrime(num) { /** * 素数定义:大于1,除了1和它本身以外没有其他的约数 */ if (num <= 1) { return false; } for (let i = 2; i…

    JavaScript 2023年5月28日
    00
  • 纯js实现动态时间显示

    以下是详细讲解“纯JS实现动态时间显示”的完整攻略。 一、准备工作 首先我们需要一个HTML页面,并在页面中添加一个用于显示时间的容器,例如: <!DOCTYPE html> <html> <head> <title>动态时间显示</title> </head> <body>…

    JavaScript 2023年5月27日
    00
  • 一篇文章搞定echarts地图轮播高亮

    下面是详细讲解“一篇文章搞定echarts地图轮播高亮”的完整攻略: 1.准备工作 在开始操作之前,你需要准备以下工具和技能: 计算、理解经纬度坐标系并能熟练使用echarts中的地图组件 熟练使用javascript编程语言 确保已经完成了echarts库和其依赖库的安装 2. 地图轮播高亮思路 地图轮播高亮的核心思路,是通过定时器不断切换并高亮指定点的策…

    JavaScript 2023年6月11日
    00
  • JavaScript中计时器requestAnimationFrame、setTimeout、setInterval、setImmediate的使用和区别

    在JavaScript中,我们经常使用requestAnimationFrame、setTimeout、setInterval和setImmediate来控制代码的执行时机。它们各有特点和适用场景: 1. requestAnimationFrame: requestAnimationFrame主要用于浏览器动画渲染。这个函数允许你在下一次浏览器重绘前调用一个…

    JavaScript 2023年4月18日
    00
  • JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)

    JavaScript性能优化之函数节流与函数去抖 函数节流(throttle)和函数去抖(debounce)都是 JavaScript 中常用的性能优化技巧。它们都是用来解决频繁触发回调函数导致过多计算使页面出现卡顿或资源浪费的问题。 函数节流 throttle 函数节流的基本思路是:在一定时间间隔内,只执行一次函数。通过这种方式,可以减少计算次数,提升性能…

    JavaScript 2023年5月27日
    00
  • js实现touch移动触屏滑动事件

    首先,在JS中实现touch移动事件需要以下步骤: 1.监听touch事件,获取移动的距离及方向2.根据移动的距离及方向判断滑动操作:是垂直滑动还是水平滑动3.根据滑动的距离改变页面元素的位置4.结束滑动后执行相应的操作,比如改变元素的样式或者执行相关动画 下面是JS实现touch移动事件的完整示例: <!DOCTYPE html> <ht…

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