js 列表实现
JavaScript 列表实现方法
JavaScript 中可以使用数组(Array)来实现列表功能,数组提供了丰富的内置方法用于操作列表数据。
创建列表
// 空列表
const list1 = [];
// 带初始值的列表
const list2 = [1, 2, 3, 4, 5];
// 使用Array构造函数
const list3 = new Array();
const list4 = new Array(1, 2, 3);
基本操作
// 添加元素到末尾
list1.push(6);
// 添加元素到开头
list1.unshift(0);
// 删除末尾元素
list1.pop();
// 删除开头元素
list1.shift();
// 获取列表长度
const length = list1.length;
// 访问元素
const first = list1[0];
const last = list1[list1.length - 1];
高级操作
// 遍历列表
list1.forEach(item => console.log(item));
// 映射新列表
const doubled = list1.map(x => x * 2);
// 过滤列表
const evens = list1.filter(x => x % 2 === 0);
// 查找元素
const found = list1.find(x => x > 3);
// 排序列表
const sorted = list1.sort((a, b) => a - b);
// 反转列表
const reversed = list1.reverse();
// 连接列表
const combined = list1.concat(list2);
列表切片
// 获取子列表
const sublist = list1.slice(1, 3);
// 删除/替换元素
list1.splice(2, 1, 'new'); // 从索引2开始删除1个元素,插入'new'
其他实用方法
// 检查是否包含元素
const hasElement = list1.includes(2);
// 查找元素索引
const index = list1.indexOf(3);
// 连接为字符串
const str = list1.join(', ');
// 计算累计值
const sum = list1.reduce((acc, val) => acc + val, 0);
性能考虑
- 对于频繁在开头插入/删除的操作,链表可能是更好的选择
- 数组在随机访问时性能更好(O(1)时间复杂度)
- 大规模数据操作时考虑使用TypedArray等特殊数组类型
替代方案
如果需要更复杂的列表功能,可以考虑:

// 使用链表实现
class ListNode {
constructor(value, next = null) {
this.value = value;
this.next = next;
}
}
// 使用第三方库如Immutable.js的List
import { List } from 'immutable';
const immutableList = List([1, 2, 3]);






