Ghost

struxadotcloud/struxa

public
Fork0
CodeIssues0Pull requests0
1branch
struxa.claudeskillsvercel-react-best-practicesrulesjs-index-maps.md
initial commitd4cb9e15 months ago37 lines · 850 B
1---
2title: Build Index Maps for Repeated Lookups
3impact: LOW-MEDIUM
4impactDescription: 1M ops to 2K ops
5tags: javascript, map, indexing, optimization, performance
6---
7
8## Build Index Maps for Repeated Lookups
9
10Multiple `.find()` calls by the same key should use a Map.
11
12**Incorrect (O(n) per lookup):**
13
14```typescript
15function processOrders(orders:
16 return orders.map
17 ...order,
18 user: users.find
19 }));
20}
21```
22
23**Correct (O(1) per lookup):**
24
25```typescript
26function processOrders(orders:
27 const userById =
28
29 return orders.map
30 ...order,
31 user: userById.get
32 }));
33}
34```
35
36Build map once (O(n)), then all lookups are O(1).
37For 1000 orders × 1000 users: 1M ops → 2K ops.
Order
[]
,
users
:
User
[]
)
{
(
(
order
)
=>
(
{
(
(
u
)
=>
u
.
id
===
order
.
userId
)
,
Order
[]
,
users
:
User
[]
)
{
new
Map
(
users
.
map
(
(
u
)
=>
[
u
.
id
,
u
]))
;
(
(
order
)
=>
(
{
(
order
.
userId
)
,