最近有在熟悉集合(數組)的一些操作方法。其中遇到判定一個元素是否存在于一個數組中的時候,了解到有這么三個方法。了解并做記錄。
判定一個元素是否存在于一個素組中,存在返回true,不存在返回false.
Array.includes(item,startIndex)
就開頭遇到的要求來說,這個方法才是最合適的。但這個方法是es6才有
的,使用的時候要注意這點。可配置第二個參數,即為開始匹配的位置。這個參數不能大于數組的長度。可以是負值,給負值時則為從數組末尾開始的偏移量開始匹配,見下例:
let a = [1,2,3]; a.includes(1)// true
let a = [1,2,3]; a.includes(1,-1)//false
let a = [1,2,3]; a.includes(1,-3)//true
判斷一個元素是否存在一個數組中,存在則返回這個元素在數組中的下標,不存在則返回-1.
Array.indexOf(item,startIndex)
這個方法應該主要用作判定數組中包含某個元素,并且要得到這個元素的時候。當然,它的先決條件就事可以判定元素是否在數組中,所有在ES6之前都可以用它,也是很好用的。第二個參數見includes方法的第二個參數,一樣的。
Array.find(fun[item,index,arr],callback);
這個也是ES6才開始定義的方法,獲取數組中滿足指定條件的第一個元素的值。注意這個方法返回的是值。如果所有元素都不滿足條件,返回undefined。在指定條件函數中包含有三個參數:
- item:當前數組正在處理的元素
- index:當前元素的索引
- 調用find方法的數組