一、问题
有如下数组arr1,元素a、b、c,判断arr1是否包含a或b或c
var arr1=[1,2,3] var a=4 var b=2 var c=6
二、JS数组的方法
方法 | 描述 |
concat() | 连接两个或更多的数组,并返回结果。 |
copyWithin() | 从数组的指定位置拷贝元素到数组的另一个指定位置中。 |
entries() | 返回数组的可迭代对象。 |
findIndex() | 返回符合传入测试(函数)条件的数组元素索引。 |
forEach() | 数组每个元素都执行一次回调函数。 |
from() | 通过给定的对象中创建一个数组。 |
includes() | 判断一个数组是否包含一个指定的值。 |
lastIndexOf() | 搜索数组中的元素,并返回它最后出现的位置。 |
map() | 通过指定函数处理数组的每个元素,并返回处理后的数组。 |
pop() | 删除数组的最后一个元素并返回删除的元素。 |
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 |
reduce() | 将数组元素计算为一个值(从左到右)。 |
reduceRight() | 将数组元素计算为一个值(从右到左)。 |
reverse() | 反转数组的元素顺序。 |
shift() | 删除并返回数组的第一个元素。 |
slice() | 选取数组的一部分,并返回一个新数组。 |
some() | 检测数组元素中是否有元素符合指定条件。 |
sort() | 对数组的元素进行排序。 |
splice() | 从数组中添加或删除元素。 |
toString() | 把数组转换为字符串,并返回结果。 |
根据描述,如下三个方法应可以实现
includes() | 判断一个数组是否包含一个指定的值。 |
indexOf() | 搜索数组中的元素,并返回它所在的位置。 |
lastIndexOf() | 搜索数组中的元素,并返回它最后出现的位置。 |
三、includes实例
let site = ['runoob', 'google', 'taobao']; site.includes('runoob'); // true site.includes('baidu'); // false
四、indexOf实例
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.indexOf("Apple"); //2
数组的索引开始位置是从 0 开始的,从头到尾地检索数组中指定元素 ,如果找到,返回索引。
如果在数组中没找到指定元素则返回 -1。
五、lastIndexOf实例
var fruits = ["Banana", "Orange", "Apple", "Mango"]; var a = fruits.lastIndexOf("Apple"); //2
数组的索引开始位置是从 0 开始的,从尾到头地检索数组中指定元素 ,如果找到,返回索引。
如果在数组中没找到指定元素则返回 -1。
六、实现
var arr1=[1,2,3] var a=4 var b=2 var c=6 console.log("------------------------") console.log(arr1.includes(a)) console.log(arr1.includes(b)) console.log(arr1.includes(c)) console.log("------------------------") console.log(arr1.indexOf(a)!==-1) console.log(arr1.indexOf(b)!==-1) console.log(arr1.indexOf(c)!==-1) console.log("------------------------") console.log(arr1.lastIndexOf(a)!==-1) console.log(arr1.lastIndexOf(b)!==-1) console.log(arr1.lastIndexOf(c)!==-1)
------------------------ VM633:6 false VM633:7 true VM633:8 false VM633:9 ------------------------ VM633:10 false VM633:11 true VM633:12 false VM633:13 ------------------------ VM633:14 false VM633:15 true VM633:16 false