持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情
今天带大家学习数组的includes方法。
语法
arr.includes(valueToFind[, fromIndex])
参数
-
valueToFind:需要查找的元素值。 备注: 使用includes比较字符串和字符时是区分大小写的。 -
fromIndex: 可选。从fromIndex索引处开始查找valueToFind。如果为负值,则按升序从array.length + fromIndex的索引开始搜(即从末尾开始往前跳fromIndex的绝对值个索引,然后往后搜寻)。默认为0, 假如array.length + fromIndex依然为负,则效果同0。
返回值
如果在数组中(或 fromIndex 指定的范围中)找到了 valueToFind,则返回 true,否则返回 false。
0 的值将全部视为相等,与符号无关(即 -0 与 0 和 +0 相等),但 false 不被认为与 0 相等。
例子
- 第一个例子,在数组中找元素
1,显然是有的,返回true - 第二个例子,在数组中找元素
0,显然没有,返回false - 第三个例子,从下标
1开始在数组中找元素1,那下标在1以及之后的元素只有2和3了,找不到元素1,返回false - 第四个例子,从下标
1开始在数组中找元素3,那下标在1以及之后的元素有2和3,找到了3,返回true
我们让fromIndex这个参数为负数:
- 第一个例子等价于
list.includes(3, 3 + (-1))即list.includes(3, 2) - 第二个例子等价于
list.includes(1, 0) - 第三个例子等价于
list.includes(1, 2)
手写
Array.prototype._includes = function(valueToFind, fromIndex) {
let res = false;
let start = fromIndex >= 0 ? fromIndex : Math.abs(this.length + fromIndex);
for(let i = fromIndex=== undefined ? 0 : start; i < this.length; i++) {
if(this[i] === valueToFind) {
res = true;
}
}
return res;
}
结语
今天关于数组includes的介绍就讲到这里,关注我获取更多有关数组方法的讲解,后续会持续更新。我是末世未然,一个爱折腾的新晋奶爸,祝好