JavaScript支持多种数据结构,这些数据结构可以帮助你在程序中组织和存储数据。以下是一些常见的JavaScript数据结构:
-
数组 (Array):
- 数组是一种有序的集合,可以通过索引访问元素。
- 示例:
let myArray = [1, 2, 3, 4, 5];
-
对象 (Object):
- 对象是一种无序的键值对集合,用于表示和存储实体的属性。
- 示例:
let person = { name: 'John', age: 30, city: 'New York' };
-
栈 (Stack):
- 栈是一种后进先出(Last In, First Out,LIFO)的数据结构。
- 示例:
let stack = []; stack.push(1); stack.push(2); stack.pop(); // 移除并返回最后一个元素
-
队列 (Queue):
- 队列是一种先进先出(First In, First Out,FIFO)的数据结构。
- 示例:
let queue = []; queue.push(1); queue.push(2); queue.shift(); // 移除并返回第一个元素
-
链表 (Linked List):
- 链表是一种线性数据结构,由节点组成,每个节点包含数据和指向下一个节点的引用。
- 示例:
class Node { constructor(data, next = null) { this.data = data; this.next = next; } } let linkedList = new Node(1, new Node(2, new Node(3)));
-
集合 (Set):
- 集合是一种无序且不包含重复元素的数据结构。
- 示例:
let mySet = new Set(); mySet.add(1); mySet.add(2); mySet.add(1); // 重复的元素不会被添加
-
映射 (Map):
- 映射是一种键值对的集合,其中键是唯一的。
- 示例:
let myMap = new Map(); myMap.set('name', 'John'); myMap.set('age', 30);
-
树 (Tree):
- 树是一种分层数据结构,由节点组成,每个节点可以有零个或多个子节点。
- 示例: 二叉搜索树 (Binary Search Tree, BST)
class TreeNode { constructor(value) { this.value = value; this.left = null; this.right = null; } } let root = new TreeNode(10); root.left = new TreeNode(5); root.right = new TreeNode(15);
这只是JavaScript中一些常见的数据结构,实际上,JavaScript还支持其他更高级的数据结构,例如 WeakMap、WeakSet、TypedArray 等。