← Back to list

用 some() 與 every() 檢查資料是否符合條件

我們在寫後台系統時,很常需要判斷資料狀態。

Chiayu · 2026-06-02 10:27 · 0 claps · 2.5 min read
#javascript #js #some #every #軟體工程師
Open on Medium ↗
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 文件:

MDN Array.some() 官方文件

MDN Array.every() 官方文件

文件會看到:

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