indexOf()方法和lastIndexOf()方法还有新增的includes()方法

indexOf()和lastIndexOf()方法操作

两个方法都接收两个参数:要查找的项和要查找的起始位置的索引。

     indexOf()是从数组的开始向后查找

     lastIndexOf()是从数组的末尾向前查找

第一个参数:

要在数组中定位的元素。

第二个参数:

用于开始搜索的索引。如果索引大于或等于数组的长度,则返回-1,这意味着不会搜索该数组。如果提供的索引值为负数,则将其作为数组末尾的偏移量。注意:如果提供的索引为负数,则仍会从前到后搜索数组。如果计算的索引小于0,则将搜索整个数组。默认值:0(搜索整个数组)。

两个方法都返回要查找的的项在数组中的索引

ps:indexOf()使用严格相等(与=== 三重等于运算符使用的方法相同)与Array的元素进行比较。

先介绍indexOf(),这个用的比较多一些

注意:两个方法都对大小写敏感。

注意:如果要检索的字符串值没有出现,则都返回 -1。

String类型的使用:

var b = "yellow";
b.indexOf("y",1)    //0
//正常的检索从字符串的
b.indexOf("y",0)    //0
b.indexOf("o",10)    //-1

如果找到就返回数组的索引,没找到就返回-1,看起来没什么样子,接下来看看

var c = "2016";
c.indexOf(6)    //3
c.indexOf("6")    //3

这里indexOf 会做简单的类型转换,把数字转换成字符串 '2' 然后再执行。

接下来再看看number类型

var d = 2018;
d.indexOf(8)    //VM150:1 Uncaught TypeError: d.indexOf is not a function

之前字符串会做隐式转换,但是namber类型不会做隐式转换

接下来就是数组了 使用最多的类型

var a = ["a","b","c","d","a","b","c","d"]

//["a", "b", "c", "d", "a", "b", "c", "d"]

a.indexOf("a",3)    //4    找到的是第二个"a"

a.indexOf("a",5)    //-1    找不到返回-1


var a = ["abcd","bacd","cabd","dabc"]

a.indexOf("a",2)    //-1    此方法不会再每一个元素的基础上再执行indexOf()方法

 

lastIndexOf()是从末尾向前开始查找

返回值是从0开始的下标,没有检索到也是返回-1,

一般来说,indexOf是用来查找字符串的。

 

es6新增的includes()方法

includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。

let str = ["apple", "plum", "peach" ,"banana" ,"pitaya" ,"fruits"];
console.log(str.includes("banana"));    // true;
console.log(str.includes("ananas"))    // false

接受两个参数,第一个参数是需要查找的元素值,第二个参数代表是从该索引开始搜索,如果为负数,那么按照 array.length + index 处的索引开始搜索,默认为0;

返回值

boolean类型( true 或 false )

示例

[1, 2, 3].includes(2);     // true
[1, 2, 3].includes(4);     // false
[1, 2, 3].includes(3, 3);  // false
[1, 2, 3].includes(3, -1); // true
[1, 2, NaN].includes(NaN); // true

如果第二个长度大于本身数值的长度

var arr = ['a', 'b', 'c'];

arr.includes('c', 3);   //false
arr.includes('c', 100); // false

如果计算出的索引小于0时

// 数组长度是3
// array.length是 -100
// index 是 3 + (-100) = -97

var arr = ['a', 'b', 'c'];

arr.includes('a', -100); // true
arr.includes('b', -100); // true
arr.includes('c', -100); // true

大概就这么多,indexOf()方法的返回值是 第一次出现的索引位置 和 -1。而includes返回的是true和false,相比于indexOf()方法来说会简便一些

PS:注意includes方法只会找到字符串里面有没有这个字母,如果这个字母前面后者后面还有字母,那么也同样会被找到,看例子。

let str = "apple plum peach2  banana2 pitayafruits";
console.log(str.includes("banana"));    // true;
console.log(str.includes("ananas"))    // false

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值