要在数组中定位的元素。

第二个参数:

用于开始搜索的索引。如果索引大于或等于数组的长度,则返回-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
indexOf()和lastIndexOf()方法操作两个方法都接收两个参数:要查找的项和要查找的起始位置的索引。     indexOf()是从数组的开始向后查找     lastIndexOf()是从数组的末尾向前查找第一个参数:要在数组中定位的元素。第二个参数:用于开始搜索的索引。如果索引大于或等于数组的长度,则返回-1,这意味着不会搜索该数组。如果提供的索引值为...
indexOf()和lastIndexOf()的参数值 最近在看红宝书,对于inedxOf()和lastIndexOf()的第二个参数一直没有理解,也上网查了很多,不同的解释和理解。于是总结一下我在查询后所理解的结果,如理解不正确,请大佬纠正指出,非常感谢!在解释第二参数之前,先总结一下这两个位置方法indexOf() 表示从数组的开头(位置0)开始向后查找所要查询的内容。 lastIndexOf() 表示从数组的末尾开始向前查找所要查询的内容。 这两个位置方法: (1)都接收两个参数(第一个参数:要
一,定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。 stringObject.indexOf(searchvalue,fromindex) stringObject.lastIndexOf(searchvalue,frominde...
lastIndexOf()从数组后面开始往前查找第一次出现的目标数,并且返回它正常的索引值。未找到返回-1 substring(start)方法用于提取字符串中介于两个指定下标之间的字符。substring() 方法返回的子串包括start处的字符,但不包括stop处的字符。 let routes=[ meta:{title:'后台首页'}, component:'index/index' meta:{title:'商品列表...
ECMAScript 5 为数组实例添加了两个位置方法indexOf() 和 lastIndexOf() 。这两个方法都接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。 indexOf() 方法数组的开头(位置 0)开始向后查找 lastIndexOf() 方法则从数组的末尾开始向前查找。 这两个方法都返回要查找的项在数组中的位置,或者在没找到的情况下返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符;也就是说,要求查找的项必须严格相等(就像使用===一样)。