当前位置:首页 > JavaScript

js 实现list

2026-03-13 19:08:07JavaScript

使用数组(Array)实现列表

JavaScript 中数组是最常用的列表实现方式,支持动态增删元素和多种操作方法。

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

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

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

// 访问元素
console.log(list[1]); // 输出: 2

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

使用链表(Linked List)实现列表

链表适合频繁插入/删除的场景,以下是单向链表的实现示例:

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

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

  // 添加元素到末尾
  append(value) {
    const newNode = new ListNode(value);
    if (!this.head) {
      this.head = newNode;
    } else {
      let current = this.head;
      while (current.next) {
        current = current.next;
      }
      current.next = newNode;
    }
    this.size++;
  }

  // 删除指定值节点
  remove(value) {
    if (!this.head) return;

    if (this.head.value === value) {
      this.head = this.head.next;
      this.size--;
      return;
    }

    let current = this.head;
    while (current.next) {
      if (current.next.value === value) {
        current.next = current.next.next;
        this.size--;
        return;
      }
      current = current.next;
    }
  }
}

使用 ES6 的 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* listGenerator() {
  yield 1;
  yield 2;
  yield 3;
}

const genList = listGenerator();
for (const item of genList) {
  console.log(item); // 依次输出1,2,3
}

使用 TypedArray 处理数值列表

处理二进制数据或类型化数组时:

js 实现list

// 创建包含10个元素的Int32数组
const typedList = new Int32Array(10);
typedList[0] = 42;
console.log(typedList.length); // 输出: 10

标签: jslist
分享给朋友:

相关文章

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现驼峰

js实现驼峰

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

js 实现跳转

js 实现跳转

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

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…

js实现图片移动

js实现图片移动

使用CSS和JavaScript实现图片移动 方法一:使用CSS动画结合JavaScript控制 通过CSS定义动画关键帧,JavaScript动态添加或移除动画类。 /* CSS部分 */ .m…