当前位置:首页 > JavaScript

js 实现list

2026-04-05 13:24:26JavaScript

在 JavaScript 中实现列表(List)功能可以通过数组(Array)或自定义数据结构完成。以下是几种常见方法:

使用内置数组

JavaScript 数组原生支持列表操作,包括增删改查和遍历:

js 实现list

const list = [1, 2, 3]; // 初始化
list.push(4); // 添加元素到末尾
list.unshift(0); // 添加元素到开头
list.pop(); // 移除末尾元素
list.shift(); // 移除开头元素
list.splice(1, 1); // 删除索引1的元素

自定义链表实现

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

js 实现list

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

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

  add(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++;
  }
}

使用 ES6 类封装

通过类封装增强数组功能:

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

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

  remove(item) {
    const index = this.items.indexOf(item);
    if (index > -1) this.items.splice(index, 1);
  }

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

不可变列表实现

使用扩展运算符实现不可变操作:

const original = [1, 2, 3];
const newList = [...original, 4]; // 添加元素
const filtered = original.filter(x => x !== 2); // 删除元素

性能注意事项

  • 数组的 push/pop 操作是 O(1),但 shift/unshift 是 O(n)
  • 链表插入/删除为 O(1),但随机访问需要 O(n)
  • 大数据量时考虑使用 TypedArray 或链表结构

标签: jslist
分享给朋友:

相关文章

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…

js实现滑动

js实现滑动

实现滑动效果的方法 在JavaScript中实现滑动效果可以通过多种方式完成,以下是几种常见的实现方法: 使用CSS过渡和JavaScript触发 通过CSS定义过渡效果,JavaScript控制触…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…