mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
* chore(ai-workflow): track repo-managed review tooling * fix(ai-workflow): remove repo-specific path assumptions Make shared workflow hooks and APK testing guidance resolve paths from the repo and contributor environment so the tooling works for all contributors, not just one machine.
51 lines
1.1 KiB
Markdown
51 lines
1.1 KiB
Markdown
---
|
|
title: Early Return from Functions
|
|
impact: LOW-MEDIUM
|
|
impactDescription: avoids unnecessary computation
|
|
tags: javascript, functions, optimization, early-return
|
|
---
|
|
|
|
## Early Return from Functions
|
|
|
|
Return early when result is determined to skip unnecessary processing.
|
|
|
|
**Incorrect (processes all items even after finding answer):**
|
|
|
|
```typescript
|
|
function validateUsers(users: User[]) {
|
|
let hasError = false
|
|
let errorMessage = ''
|
|
|
|
for (const user of users) {
|
|
if (!user.email) {
|
|
hasError = true
|
|
errorMessage = 'Email required'
|
|
}
|
|
if (!user.name) {
|
|
hasError = true
|
|
errorMessage = 'Name required'
|
|
}
|
|
// Continues checking all users even after error found
|
|
}
|
|
|
|
return hasError ? { valid: false, error: errorMessage } : { valid: true }
|
|
}
|
|
```
|
|
|
|
**Correct (returns immediately on first error):**
|
|
|
|
```typescript
|
|
function validateUsers(users: User[]) {
|
|
for (const user of users) {
|
|
if (!user.email) {
|
|
return { valid: false, error: 'Email required' }
|
|
}
|
|
if (!user.name) {
|
|
return { valid: false, error: 'Name required' }
|
|
}
|
|
}
|
|
|
|
return { valid: true }
|
|
}
|
|
```
|