❌ 原想法: for循环
![](https://i-blog.csdnimg.cn/blog_migrate/1e620bc0b485ca79ca1220d480700cd1.png)
错误:
Cannot set headers after they are sent to the client …
✅ 解决办法: 用some() + filter()方法代替含有if、else的for循环
![](https://i-blog.csdnimg.cn/blog_migrate/8f79e78f212d338c6130dff972694633.png)
if (data.some(item => {
return 判断条件
})) {
data = data.filter(item => {
return 过滤条件
})
res.json({
status: '200',
result: data
})
} else {
res.json({
status: '404',
})
}
因为some()方法不会改变data的值,所以利用filter()方法过滤满足条件的值。
⚠ ️some()
和 every()
的区别:
- some():只要其中一个为true就会返回true。
- every():所有都返回true才会返回true,哪怕有一个false,就会返回false。