当前位置:首页 > JavaScript

js 列表实现

2026-02-02 02:49:05JavaScript

JavaScript 列表实现方法

在 JavaScript 中,列表通常通过数组或特定数据结构实现。以下是几种常见的实现方式:

使用原生数组

JavaScript 数组自带多种列表操作方法,适合大多数场景:

const list = [1, 2, 3];
list.push(4); // 尾部添加
list.pop();   // 尾部移除
list.unshift(0); // 头部添加
list.shift();    // 头部移除

链表实现

需要更灵活的操作时可实现链表结构:

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

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

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

双向链表实现

需要双向遍历时可扩展为双向链表:

class DoublyListNode {
  constructor(val) {
    this.val = val;
    this.prev = null;
    this.next = null;
  }
}

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

  addAtTail(val) {
    const node = new DoublyListNode(val);
    if (!this.head) this.head = node;
    else {
      node.prev = this.tail;
      this.tail.next = node;
    }
    this.tail = node;
    this.size++;
  }
}

性能优化建议

  • 频繁插入/删除操作时优先考虑链表结构
  • 随机访问需求高时使用原生数组
  • 大数据量时注意链表的内存开销

实用工具方法

扩展数组功能实现类 List 操作:

js 列表实现

class List {
  constructor(items = []) {
    this.items = [...items];
  }

  add(item) {
    this.items.push(item);
  }

  remove(index) {
    return this.items.splice(index, 1)[0];
  }

  get(index) {
    return this.items[index];
  }
}

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

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…