当前位置:首页 > 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如何实现继承

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

h5 实现列表

h5 实现列表

列表实现方法 在HTML5中,可以通过多种方式实现列表,包括无序列表、有序列表和自定义列表。以下是具体的实现方法。 无序列表 无序列表使用<ul>标签,列表项使用<li>标签…

vue实现js休眠

vue实现js休眠

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

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…