JavaScript 数组 — 后端备忘单

重点:数据转换、验证、聚合(API / DB 工作)


⭐ reduce() — 最重要的(聚合/对象构建)

数组 ko ek 单个结果 mein 转换 karta hai

总和

1
const total = orders.reduce((acc,o)=> acc + o.price , 0);

### 数数

1
const active = users.reduce((acc,u)=> u.active ? acc+1 : acc , 0);

对象(索引)

1
2
3
4
const map = users.reduce((box,u)=>{
box[u.id] = u.name;
return box;
},{});

分组

1
2
3
4
5
const grouped = logs.reduce((box,l)=>{
if(!box[l.user]) box[l.user] = [];
box[l.user].push(l.action);
return box;
},{});

每个用户的总和

1
2
3
4
const totals = payments.reduce((box,p)=>{
box[p.user] = (box[p.user] || 0) + p.amount;
return box;
},{});

后端使用:

  • 分析
  • 报告
  • 缓存
  • 索引数据库结果

map() — 响应整形

DB → API 响应格式

1
2
3
4
users.map(u => ({
id: u.id,
name: u.name
}));

后端:
删除敏感字段(密码、令牌)


filter() — 删除不需要的数据

1
users.filter(u => u.active);

后端:
软删除、权限、搜索


find() — 单个记录

1
users.find(u => u.id === id);

后端:
获取/用户/:id


some() — 任何匹配(授权)

1
roles.some(r => r === "admin");

后端:
检查权限


every() — 所有有效(验证)

1
fields.every(f => f !== "");

后端:
输入验证


forEach() — 副作用

1
users.forEach(u => log(u.email));

后端:
记录/通知


slice() — 分页

1
items.slice(offset, offset + limit);

后端:
页面和限制 API


##includes()——存在性检查

1
allowedRoles.includes(user.role);

后端:
访问控制


心智模型

过滤器 → 卡姆卡罗
地图 → 形状 badlo
减少→结果banao
查找 → ek 尼卡洛
一些 → 锦鲤?
每个 → sab?


黄金法则

后端数组 ≠ DSA
后端数组=数据转换