首页 > 其他分享 >数组搜索和位置方法总结(indexOf()、lastIndexOf()、includes()、find()、findIndex())

数组搜索和位置方法总结(indexOf()、lastIndexOf()、includes()、find()、findIndex())

时间:2024-04-12 11:57:09浏览次数:14  
标签:findIndex console log indexOf element 索引 数组 lastIndexOf

1.严格相等(indexOf()、lastIndexOf()、includes())

这三个方法都接受两个参数(要查找的元素、可选的起始搜索位置)indexOf()、includes()从数组第一项往后搜索,lastIndexOf()从数组最后一项往前开始搜索

indexOf与lastIndexOf返回要查找的元素在数组中的位置,如果没有找到返回-1,incoudes返回布尔值,表示是否至少找到一个与指定元素匹配的项,在比较时会使用全等(===)比较

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];


console.log(numbers.indexOf(4)); // 3,从数组第一项开始查找4,返回第一个4的位置索引3
console.log(numbers.lastIndexOf(4));  // 5,从数组最后一项开始查找,返回第一个查找到的4索引为5
console.log(numbers.includes(4));  // true,从数组第一项开始查找是否包含4


console.log(numbers.indexOf(4, 4));  // 5,从数组索引为4的地方开始搜索,返回第一个查找到的4的索引为5
console.log(numbers.lastIndexOf(4, 4));  // 3,从数组索引为4的地方向前搜索,查找到的第一个4的索引为3
console.log(numbers.includes(4, 7));  //  false,从数组索引为7的地方开始往后查找,没有4,所以返回false



let person = { name: "Nicholas" };
let people = [{ people: "Nicholas" }];
let morePeople = [person];
console.log(people.indexOf(person));  // -1,在比较对象的全等时,因为people和person看上去值是相等的,但是两者引用地址不一样,指向不同的对象,所以在判断全等时两者并不相等
console.log(morePeople.indexOf(person));  //  0,因为morePeople直接将person作为自己的第一个数组元素,所以morePeople[0]和person是同一个引用地址,指向同一个对象
console.log(people.includes(person));  //  false
console.log(morePeople.includes(person));  // true

2.断言函数(find()、findIndex()):每个索引都会调用这个函数,返回值决定了相应索引的元素是否被认为匹配。

断言函数接受三个参数(数组中当前搜索的元素、当前元素的索引、正在搜索的数组本身),返回真值,表示是否匹配。

find()、findIndex()都从数组的最小索引开始。find()返回第一个匹配的元素,findIndex()返回第一个匹配元素的索引,这两个方法都接受第二个可选的参数,用于指定断言函数内部this值。

const people = [
  {
      name: "Matt",
      age: 27
  },
  {
      name: "Nicholas",
      age: 29
  }
]

console.log(people.find((element, index, array) => element.age < 28)); // {name: "Matt", age: 27}

console.log(people.findIndex((element, index, array) => element.age < 28)); // 0

注:找到匹配项后,这两个方法都不再继续搜索

//找到匹配后,永远不会检查数组最后一个元素

const evens = [2, 4, 6];
evens.find((element, index, array) => {
  console.log(element);
  console.log(index);
  console.log(array);
  return element === 4
})

//  2
//  0
//  [2, 4, 6]
//  4
//  1
//  [2, 4, 6]
//找到匹配后,永远不会检查数组最后一个元素

const evens = [2, 4, 6];
evens.find((element, index, array) => {
  console.log(element);
  console.log(index);
  console.log(array);
  return element === 4
})

//  2
//  0
//  [2, 4, 6]
//  4
//  1
//  [2, 4, 6]

 

标签:findIndex,console,log,indexOf,element,索引,数组,lastIndexOf
From: https://www.cnblogs.com/zengyu123/p/18130873

相关文章

  • indexOf
    lettext="dockerrun-d-p8080:8080-p8081:8081-p8081:8081-p8081:8081-P8082-P8082-ekey1=value1-ekey2=value23-ekey3value3"letarray1=findStringIndex(text,"-p");letarray2=findStringIndex(text,"-P"......
  • JavaScript实现文件大小转换、单位转换、toFixed、indexOf、substr、substring、B、KB
    constbytesToSize=(size)=>{if(size<0.1*1024){//小于0.1KB,则转化成Bsize=size.toFixed(2)+'B'}elseif(size<0.1*1024*1024){//小于0.1MB,则转化成KBsize=(size/1024).toFixed(2)+'KB'}else......
  • 无涯教程-lastIndexOf()函数
    此方法返回最后一次出现的指定值的调用字符对象内的索引,如果没有找到该值,则从fromIndex或-1开始搜索。lastIndexOf()-语法string.lastIndexOf(searchValue[,fromIndex])searchValue  - 表示要搜索的值的字符串。fromIndex   - 调用字符串中开始搜索的位......
  • 无涯教程-Java - int lastIndexOf(String str)函数
    如果string参数作为该对象中的子字符串出现一次或多次,则它返回最后出现的第一个字符的索引,如果没找到,则返回-1。intlastIndexOf-语法这是此方法的语法-publicintlastIndexOf(Stringstr)这是参数的详细信息-str   -  一个字符串。intlastIndexOf-返回值......
  • 无涯教程-Java - int lastIndexOf(String str, int fromIndex)函数
    此方法返回最后一次出现的指定子字符串在此字符串内的索引,从指定索引(fromIndex)开始向后搜索。intlastIndexOf-语法publicintlastIndexOf(Stringstr,intfromIndex)这是参数的详细信息-fromIndex - 从中开始搜索的索引。str        - 一个......
  • 无涯教程-Java - int lastIndexOf(int ch, int fromIndex)函数
    此方法返回此对象表示的字符序列中该字符最后一次出现的索引,该索引小于或等于fromIndex,如果没找到,则返回-1。intlastIndexOf-语法publicintlastIndexOf(intch,intfromIndex)这是参数的详细信息-ch         - 一个字符。fromIndex  - 从......
  • 无涯教程-Java - int lastIndexOf(int ch)函数
    此方法返回此对象表示的字符序列中该字符最后一次出现的索引,如果没找到,则返回-1。intlastIndexOf-语法这是此方法的语法-intlastIndexOf(intch)这是参数的详细信息-ch   - 一个字符。intlastIndexOf-返回值此方法返回索引位置。intlastIndexOf-示例im......
  • 无涯教程-Java - int indexOf(String str)函数
    此方法返回指定子字符串首次出现在该字符串中的索引。如果不存在,则返回-1。intindexOf(Stringstr)-语法intindexOf(Stringstr)这是参数的详细信息-str   - 一个字符串。intindexOf(Stringstr)-示例importjava.io.*;publicclassTest{publicsta......
  • 无涯教程-Java - int indexOf(int ch, int fromIndex)函数
    此方法返回指定字符首次出现在该字符串中的索引,如果没有出现该字符,则从指定索引fromIndex或-1开始搜索。intindexOf-语法publicinindexOf(charch,intfromIndex)这是参数的详细信息-ch        - 一个字符。fromIndex  - 从中开始搜索的索......
  • Java--java.lang.String有个 indexOf()方法,但是要注意它是区分大小写的
    首先这个indexOf(Stringstr)方法的作用:如果要检索的字符串值没有出现,则该方法返回-1。1.如果要处理的字符串对大小写不敏感,可以将该字符串统一转成大写或者小写,然后再indexOf。例如处理:User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,like......