当前位置:首页 > JavaScript

js实现list

2026-04-04 04:44:24JavaScript

在 JavaScript 中实现列表(List)

JavaScript 中没有内置的 List 数据结构,但可以通过数组(Array)或自定义类实现类似功能。以下是几种常见方法:

使用数组(Array)

数组是 JavaScript 中最接近 List 的数据结构,提供多种操作方法:

js实现list

// 创建列表
const list = [1, 2, 3];

// 添加元素
list.push(4); // 末尾添加
list.unshift(0); // 开头添加

// 删除元素
list.pop(); // 移除末尾元素
list.shift(); // 移除开头元素

// 访问元素
console.log(list[0]); // 访问第一个元素

// 遍历列表
list.forEach(item => console.log(item));

自定义 List 类

如果需要更严格的 List 实现,可以创建自定义类:

js实现list

class List {
  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);
    }
  }

  size() {
    return this.items.length;
  }

  isEmpty() {
    return this.size() === 0;
  }
}

// 使用示例
const myList = new List();
myList.add('a');
myList.add('b');
console.log(myList.size()); // 2

使用链表实现

对于需要频繁插入/删除的场景,链表可能更高效:

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

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

  append(value) {
    const newNode = new ListNode(value);
    if (!this.head) {
      this.head = newNode;
      this.tail = newNode;
    } else {
      this.tail.next = newNode;
      this.tail = newNode;
    }
    this.length++;
  }
}

使用第三方库

对于复杂需求,可以考虑使用第三方库如:

  • Immutable.js(不可变列表)
  • lodash(提供更多数组操作方法)

性能考虑

  • 数组适合随机访问,但中间插入/删除较慢
  • 链表适合频繁插入/删除,但随机访问需要遍历
  • 大数据量考虑使用 TypedArray 提高性能

标签: jslist
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现定位

js实现定位

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

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…