一、基本概念
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
注意:在接收第二個參數時,表示從該位置開始向後查找,如果有該值則返回 true,否則返回 false。
const array1 = [1, 2, 3]; console.log(array1.includes(2, 2)); // expected output: false const pets = ['cat', 'dog', 'bat']; console.log(pets.includes('cat', 2)); // expected output: false
二、查找非NaN元素
includes()方法不會將NaN、undefined、null等非數字元素進行查找,只查找有效元素,因此不會返回false。
const arr = [NaN, 1, 2, 3, undefined, null]; const result = arr.includes(NaN); console.log(result); // expected output: true
三、使用includes檢測字符串
String.includes() 方法也可以對字符串進行查找,若找到就返回 true,沒找到就返回 false,用法與數組相同。
const str1 = 'Hello, world!'; console.log(str1.includes('Hello')); // expected output: true const pets = 'cat dog bat'; console.log(pets.includes('at')); // expected output: true console.log(pets.includes('at', 3)); // expected output: false
四、使用includes檢測對象
需要注意的是,如果使用includes() 方法來檢查對象時,僅針對指針地址的匹配,即不是真正的對象比較。只有當兩個對象的引用相同時才能夠匹配
const obj1 = { name: 'Tom', age: 18 }; const obj2 = obj1; const arr = [obj1]; console.log(arr.includes(obj2)); // true const arr2 = [{ name: 'Tom', age: 18 }]; console.log(arr2.includes({ name: 'Tom', age: 18 })); // false
五、使用includes判斷字符串中是否包含特定字符集
const str1 = 'Hello, world!'; console.log(str1.includes('or', 4)); // false console.log(str1.includes('or', 3)); // true
六、檢測數組中是否包含重複元素
使用Set對象作為中間元素去掉數組中的重複元素,最後將數組去重後的長度和原數組長度進行比較,即可判斷是否含有重複元素。
const hasDup = (arr) => arr.length !== [...new Set(arr)].length; console.log(hasDup([1,2,3,4])); // false console.log(hasDup([1,2,3,3,4])); // true
七、小結
includes()是es6引入的新方法之一,用於判斷數字、字符串、對象等數據元素是否包含某一元素。通過多個方面的闡述,我們深入了解了它的使用方法,並能夠在實際開發中靈活運用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249294.html