Array.prototype.includes()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2016å¹´8æ.
includes() 㯠Array ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ãç¹å®ã®è¦ç´ ãé
åã«å«ã¾ãã¦ãããã©ããã true ã¾ã㯠false ã§è¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const array = [1, 2, 3];
console.log(array.includes(2));
// äºæ³ãããçµæ: true
const pets = ["cat", "dog", "bat"];
console.log(pets.includes("cat"));
// äºæ³ãããçµæ: true
console.log(pets.includes("at"));
// äºæ³ãããçµæ: false
æ§æ
includes(searchElement)
includes(searchElement, fromIndex)
弿°
searchElement-
æ¤ç´¢ããå¤ã§ãã
fromIndexçç¥å¯-
æ¤ç´¢ãå§ããä½ç½®ã®ã¼ãããå§ã¾ãã¤ã³ããã¯ã¹ã§ãæ´æ°ã«å¤æããã¾ãã
- ã¤ã³ããã¯ã¹ãè² ã®å ´åãé
åã®æ«å°¾ããããã®ã¼ã£ã¦æ°ãã¾ãã
-array.length <= fromIndex < 0ã®å ´åãfromIndex + array.lengthã使ç¨ããã¾ãããã ãããã®å ´åã§ãé åã¯åããå¾ãã«åãã¦æ¤ç´¢ããã¾ãã fromIndex < -array.lengthã¾ãã¯fromIndexãçç¥ãããå ´åã¯0ã使ç¨ãããé åå ¨ä½ã«å¯¾ãã¦æ¤ç´¢ãè¡ããã¾ããfromIndex >= array.lengthã®å ´åãé åã®æ¤ç´¢ã¯è¡ããããfalseãè¿ããã¾ãã
- ã¤ã³ããã¯ã¹ãè² ã®å ´åãé
åã®æ«å°¾ããããã®ã¼ã£ã¦æ°ãã¾ãã
è¿å¤
è«çå¤ã§ãsearchElement ã®å¤ãé
åå
ï¼fromIndex ãæå®ããã¦ããå ´åã¯ãé
åã®ãã®ä½ç½®ä»¥éã®é¨åï¼ã«ãã£ãå ´å㯠true ãè¿ãã¾ãã
解説
includes() 㯠searchElement ã SameValueZero ã¢ã«ã´ãªãºã ã使ç¨ãã¦æ¯è¼ãã¾ããã¼ãã®å¤ã¯ç¬¦å·ã«é¢ãããããã¹ã¦çããï¼ããªãã¡ã-0 㯠0 ã¨çããï¼ã¨ã¿ãªããã¾ãããfalse 㯠0 ã¨åãã¨ã¯ã¿ãªããã¾ããã NaN ã¯æ£ããæ¤ç´¢ãããã¨ãã§ãã¾ãã
çé
åã§ä½¿ç¨ããå ´åã includes() ã¡ã½ããã¯ç©ºã®ã¹ãããã undefined ã¨ããå¤ããããã®ããã«å復å¦çãã¾ãã
includes() ã¡ã½ããã¯æ±ç¨çã§ãããã㯠this å¤ã« length ããããã£ã¨æ´æ°ãã¼ã®ããããã£ããããã¨ã ããæå¾
ãã¾ãã
ä¾
>includes() ã®ä½¿ç¨
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true
["1", "2", "3"].includes(3); // false
fromIndex ãé åã®é·ãã¨åãã大ããå ´å
fromIndex ãé
åã®é·ãã¨åãã大ããå ´åã¯ãé
åãæ¤ç´¢ããã« false ãè¿ãã¾ãã
const arr = ["a", "b", "c"];
arr.includes("c", 3); // false
arr.includes("c", 100); // false
è¨ç®ãããä½ç½®ã 0 ããå°ããå ´å
fromIndex ãè² ã®å¤ã§ããå ´åãsearchElement ã®æ¤ç´¢ãéå§ããããã®é
åå
ã®ä½ç½®ã¨ãã¦ãè¨ç®ã«ããä½ç½®ãç®åºããã¾ããè¨ç®ãããä½ç½®ã 0 以ä¸ã®å ´åã¯ãé
åå
¨ä½ãæ¤ç´¢ããã¾ãã
// é
åã®é·ã㯠3
// fromIndex 㯠-100
// è£æ£ãããã¤ã³ããã¯ã¹ã¯ 3 + (-100) = -97
const arr = ["a", "b", "c"];
arr.includes("a", -100); // true
arr.includes("b", -100); // true
arr.includes("c", -100); // true
arr.includes("a", -2); // false
çé åã«å¯¾ãã includes() ã®ä½¿ç¨
çé
åã§ undefined ãæ¤ç´¢ã㦠true ãåå¾ãããã¨ãã§ãã¾ãã
console.log([1, , 3].includes(undefined)); // true
é åã§ãªããªãã¸ã§ã¯ãã«å¯¾ãã includes() ã®å¼ã³åºã
includes() ã¡ã½ãã㯠this ã® length ããããã£ãèªã¿è¾¼ã¿ã次ã«ãã¼ã length ããå°ããéè² ã®æ´æ°ã§ããããããã®ããããã£ã«ã¢ã¯ã»ã¹ãã¾ãã
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 1, // length ã 3 ãªã®ã§ includes() ããã¯ç¡è¦ããã
};
console.log(Array.prototype.includes.call(arrayLike, 2));
// true
console.log(Array.prototype.includes.call(arrayLike, 1));
// false
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.includes> |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
Array.prototype.includesã®ããªãã£ã« (core-js)- es-shims ã«ãã
Array.prototype.includesã®ããªãã£ã« - ã¤ã³ããã¯ã¹ä»ãã³ã¬ã¯ã·ã§ã³ã®ã¬ã¤ã
ArrayArray.prototype.indexOf()Array.prototype.find()Array.prototype.findIndex()TypedArray.prototype.includes()String.prototype.includes()