JavaScript Array includes() (判斷陣列是否包含元素)

陣列 (array) 的 includes() 方法用來判斷陣列中是否包含某個特定的值,回傳 truefalse

語法:

arr.includes(searchElement[, fromIndex])
  • searchElement 是要搜尋的值
  • fromIndex 是可選的起始搜尋位置,預設是 0

用法:

var fruits = ['Apple', 'Banana', 'Orange'];

fruits.includes('Banana');  // true
fruits.includes('Grape');   // false

指定搜尋的起始位置:

var numbers = [1, 2, 3, 4, 5];

numbers.includes(2);     // true
numbers.includes(2, 2);  // false(從索引 2 開始找,找不到 2)
numbers.includes(4, 2);  // true(從索引 2 開始找,可以找到 4)

includes() vs indexOf():

var arr = [1, 2, NaN];

// indexOf 無法找到 NaN
arr.indexOf(NaN);   // -1

// includes 可以正確找到 NaN
arr.includes(NaN);  // true

實際應用範例:

// 檢查使用者角色
var userRoles = ['admin', 'editor', 'viewer'];

if (userRoles.includes('admin')) {
    console.log('使用者是管理員');
}

// 驗證輸入值
var validOptions = ['small', 'medium', 'large'];
var userInput = 'medium';

if (validOptions.includes(userInput)) {
    console.log('有效的選項');
} else {
    console.log('無效的選項');
}
includes() 是 ES7 (ES2016) 新增的方法。includes() 使用嚴格相等(===)來比較,但特別的是它可以正確判斷 NaN