Array.prototype.includes()
åºçº¿
广æ³å¯ç¨
èª 2016å¹´8æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
includes() æ¹æ³ç¨æ¥å¤æä¸ä¸ªæ°ç»æ¯å¦å
å«ä¸ä¸ªæå®çå¼ï¼æ ¹æ®æ
åµï¼å¦æå
å«åè¿å trueï¼å¦åè¿å falseã
å°è¯ä¸ä¸
const array1 = [1, 2, 3];
console.log(array1.includes(2));
// Expected output: true
const pets = ["cat", "dog", "bat"];
console.log(pets.includes("cat"));
// Expected output: true
console.log(pets.includes("at"));
// Expected output: false
è¯æ³
includes(searchElement)
includes(searchElement, fromIndex)
åæ°
searchElement-
éè¦æ¥æ¾çå¼ã
fromIndexå¯é-
å¼å§æç´¢çç´¢å¼ï¼ä»é¶å¼å§ï¼ï¼ä¼è½¬æ¢ä¸ºæ´æ°ã
- è´ç´¢å¼ä»æ°ç»æ«å°¾å¼å§è®¡æ°ââ妿
fromIndex < 0ï¼é£ä¹å®é 使ç¨çæ¯fromIndex + array.lengthãç¶èå¨è¿ç§æ åµä¸ï¼æ°ç»ä»ç¶ä»åå¾åè¿è¡æç´¢ã - 妿
fromIndex < -array.lengthæè çç¥fromIndexï¼å使ç¨0ï¼è¿å°å¯¼è´æ´ä¸ªæ°ç»è¢«æç´¢ã - 妿
fromIndex >= array.lengthï¼åä¸ä¼æç´¢æ°ç»å¹¶è¿åfalseã
- è´ç´¢å¼ä»æ°ç»æ«å°¾å¼å§è®¡æ°ââ妿
è¿åå¼
ä¸ä¸ªå¸å°å¼ï¼å¦æå¨æ°ç»ä¸ï¼æè
å¨ fromIndex ææç¤ºçæ°ç»é¨åä¸ï¼å¦ææå® fromIndex çè¯ï¼æ¾å° searchElement å¼ï¼å该å¼ä¸º trueã
æè¿°
includes() æ¹æ³ä½¿ç¨é¶å¼ç¸çç®æ³å° searchElement 䏿°ç»ä¸çå
ç´ è¿è¡æ¯è¾ã0 å¼é½è¢«è®¤ä¸ºæ¯ç¸ççï¼ä¸ç®¡ç¬¦å·æ¯ä»ä¹ãï¼å³ -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 屿§ï¼ç¶åè®¿é®æ¯ä¸ªæ´æ°ç´¢å¼ã
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
};
console.log(Array.prototype.includes.call(arrayLike, 2));
// true
console.log(Array.prototype.includes.call(arrayLike, 1));
// false
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification > # sec-array.prototype.includes > |