当前位置:首页 > JavaScript

js实现列表

2026-02-28 18:18:47JavaScript

使用数组创建列表

在JavaScript中,数组是最常用的列表实现方式。可以通过字面量或构造函数创建:

// 字面量方式
const list1 = [1, 2, 3, 'a', 'b'];

// 构造函数方式
const list2 = new Array(1, 2, 3);

数组提供多种操作方法:

js实现列表

  • push() 添加元素到末尾
  • pop() 移除末尾元素
  • shift() 移除首元素
  • unshift() 添加元素到开头
  • splice() 在指定位置添加/删除元素

链表数据结构实现

对于需要频繁插入/删除的场景,可以手动实现链表:

js实现列表

class ListNode {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

class LinkedList {
  constructor() {
    this.head = null;
    this.size = 0;
  }

  add(value) {
    const node = new ListNode(value);
    if (!this.head) {
      this.head = node;
    } else {
      let current = this.head;
      while (current.next) {
        current = current.next;
      }
      current.next = node;
    }
    this.size++;
  }
}

使用Map/Set实现特殊列表

当需要唯一值或键值对结构时:

// Set实现值唯一的列表
const uniqueList = new Set();
uniqueList.add(1);
uniqueList.add(2);
uniqueList.add(1); // 不会被重复添加

// Map实现键值列表
const kvList = new Map();
kvList.set('key1', 'value1');
kvList.set('key2', 'value2');

使用生成器实现惰性列表

对于大数据量的懒加载场景:

function* generateList() {
  let i = 0;
  while (true) {
    yield i++;
    if (i > 10000) break;
  }
}

const lazyList = generateList();
console.log(lazyList.next().value); // 0
console.log(lazyList.next().value); // 1

性能优化建议

  • 大数据量查询优先考虑数组
  • 频繁插入删除考虑链表结构
  • 需要唯一性使用Set
  • 现代JavaScript引擎对数组优化极好,多数场景应优先使用原生数组

标签: 列表js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…