[ PROMPT_NODE_25218 ]
js-index-maps
[ SKILL_DOCUMENTATION ]
## 为重复查找构建索引映射
多次使用相同键进行 `.find()` 调用时,应使用 Map。
**错误做法(每次查找复杂度为 O(n)):**
typescript
function processOrders(orders: Order[], users: User[]) {
return orders.map(order => ({
...order,
user: users.find(u => u.id === order.userId)
}))
}
**正确做法(每次查找复杂度为 O(1)):**
typescript
function processOrders(orders: Order[], users: User[]) {
const userById = new Map(users.map(u => [u.id, u]))
return orders.map(order => ({
...order,
user: userById.get(order.userId)
}))
}
构建一次映射 (O(n)),后续所有查找均为 O(1)。
对于 1000 个订单 × 1000 个用户:从 100 万次操作减少到 2000 次操作。