最近有在熟悉集合(数组)的一些操作方法。其中遇到判定一个元素是否存在于一个数组中的时候,了解到有这么三个方法。了解并做记录。
判定一个元素是否存在于一个素组中,存在返回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方法的数组