字符串includes()和數組includes()
字符串的includes()方法
參考文檔:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/includes
String.prototype.includes()
用於判斷一個字符串是否包含在另一個字符串中,根據情況返回true或false
該方法已被加入ECMAScript6標准中
【語法】
str.includes(searchString[, position])
【參數】
- searchString 要在此字符串中搜索的字符串
- position 可選
從當前字符串的哪個索引位置開始搜尋子字符串,默認值0
如果為負值,則等同於為0
【返回值】
如果當前字符串包含被搜尋的字符串返回true, 否則返回false
【示例】
var str = 'To be, or not to be, that is the question.' str.includes('To be'); // true
str.includes('question'); // true
str.includes('nonexistent'); // false
str.includes('To be', 1); // false
str.includes('TO BE'); // false
【瀏覽器兼容性】
不支持IE!!!
數組的includes()方法
文檔:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
Array.prototype.includes()
includes函數用來判斷一個數組是否包含一個指定的值,根據情況,如果包含則返回true, 否則返回false
Demo
const array1 = [1, 2, 3]; console.log(array1.includes(2)); // true
const pets = ['cat', 'dog', 'bat']; console.log(pets.includes('cat')); // true
console.log(pest.includes('at')); // false
【語法】
arr.includes(valueToFind[, fromIndex]);
【參數】
- valueToFind
需要查找的元素值
- fromIndex 可選
從fromIndex索引處開始查找,如果為負值,則從arr.length + fromIndex的位置開始查找
【返回值】Boolean
更多示例
[1, 2, 3].includes(2); // true [1, 2, 3].includes(4); // false [1, 2, 3, 4, 5, 6, 7, 8].includes(2, 1); // true [1, 2, 3, 4, 5, 6, 7, 8].includes(2, 2); // false [1, 2, NaN].includes(NaN);
如果fromIndex大於等於數組長度,則返回false,且該數組不會被搜索
var arr = ['a', 'b', 'c']; arr.includes('c', 3); // false arr.includes('c', 100); // false
如果fromIndex為負值,計算出的索引將作為開始搜索searchElement的位置。
如果計算出的索引小於0,則整個數組都會被搜索
示例
[1, 2, 3, 4, 5].includes(1, -1); // false [1, 2, 3, 4, 5].includes(5, -1); // true [1, 2, 3, 4, 5].includes(4, -1); // false [1, 2, 3, 4, 5].includes(4, -2); // true [1, 2, 3, 4, 5].includes(5, -2); // true
作為通用方法的includes()
includes()方法有意設計為通用方法。它不要求this值是數組對象,所以它可以被用於其他類型的對象(比如類數組對象)。示例:
(function(){ console.log([].includes.call(arguments, 'a')); // true console.log([].includes.call(arguments, 'd')); // false })('a', 'b', 'c')
【瀏覽器兼容性】
不支持IE !!!
【更多擴展】
ES7文檔(英文): https://www.ecma-international.org/ecma-262/7.0/