[ PROMPT_NODE_27950 ]
js-index-maps
[ SKILL_DOCUMENTATION ]
## 为重复查找构建索引映射(Map)
当需要通过相同键进行多次 `.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)
}))
}
构建一次 Map (O(n)),后续所有查找均为 O(1)。
对于 1000 个订单 × 1000 个用户:操作次数从 100 万次降低至 2000 次。