用 some() 與 every() 檢查資料是否符合條件
我們在寫後台系統時,很常需要判斷資料狀態。
Wiki topics:
🌐 · Web Development
用 some() 與 every() 檢查資料是否符合條件
我們在寫後台系統時,很常需要判斷資料狀態。
例如:
- 是否有商品缺貨?
- 是否有使用者未驗證?
- 是否全部訂單都已完成?
這時候就很適合使用:
- some()
- every()
真實開發情境
假設 API 回傳商品資料:
const products = [
{ name: '鍵盤', stock: 10 },
{ name: '滑鼠', stock: 5 },
{ name: '螢幕', stock: 0 },
];
現在有兩個需求
- 需求一:是否有商品缺貨?
- 需求二:是否全部商品都有庫存?
核心觀念
some()
意思是只要有一筆符合條件,就回傳 true
語法:
array.some(item => 條件)
every()
每一筆都符合條件,才回傳 true
語法:
array.every(item => 條件)
文件怎麼看
MDN 文件:
文件會看到:
arr.some(callbackFn)
arr.every(callbackFn)
其實意思就是:
陣列.some(函式)
陣列.every(函式)
跟 filter()、map()、find() 很像。


完整實作
是否有商品缺貨
const hasOutOfStock = products.some((product) => {
return product.stock === 0;
});
console.log(hasOutOfStock);
結果:
true
是否全部都有庫存
const allInStock = products.every((product) => {
return product.stock > 0;
});
console.log(allInStock);
結果:
false
常見卡點
很多人會把兩個搞混。
- some = 至少一個
- every = 全部都要
例如:
[1, 2, 3]
檢查是否有數字大於 2:
array.some(item => item > 2)
結果:
true
因為 3 符合。
檢查是否全部都大於 2:
array.every(item => item > 2)
結果:
false
因為 1、2 不符合。
重點整理
some()
array.some(item => 條件)
- 至少一筆符合
- 回傳 true 或 false
every()
array.every(item => 條件)
- 全部符合才成立
- 回傳 true 或 false
我的理解與思考
我覺得最簡單的記法就是這兩個是相反的
但是這兩個有可以交互使用
然後學了這兩個發現有 filter() 幫忙真的會更好用
然後 some()、every()真的跟字面上的意思很像
很好記。
메타데이터
- post_id
- 84f29c8b6524
- slug
- 用-some-與-every-檢查資料是否符合條件-84f29c8b6524
- url
- https://medium.com/@hotdanton08/%E7%94%A8-some-%E8%88%87-every-%E6%AA%A2%E6%9F%A5%E8%B3%87%E6%96%99%E6%98%AF%E5%90%A6%E7%AC%A6%E5%90%88%E6%A2%9D%E4%BB%B6-84f29c8b6524
- canonical_url
- https://medium.com/@hotdanton08/%E7%94%A8-some-%E8%88%87-every-%E6%AA%A2%E6%9F%A5%E8%B3%87%E6%96%99%E6%98%AF%E5%90%A6%E7%AC%A6%E5%90%88%E6%A2%9D%E4%BB%B6-84f29c8b6524
- author_url
- https://medium.com/@hotdanton08
- status
- ok
- fetched_at
- 2026-06-21 15:33:18