欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

includes 、indexOf、find、findIndex

程序员文章站 2023-12-23 12:28:46
...
let array=[1,2,4,5]

// includes 包含某个值 就返回true
let ee = array.includes(2)
console.log( ee ); // true

// find 返回第一个符合条件的元素
let er = array.find(v=>v>2);  
console.log(er);  // 4 

// findIndex 返回符合条件的索引
let er1 = array.findIndex(v=>v==4);
console.log(er1);  // 2

// indexOf 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
// 没有检测打返回 -1
// 第一个参数:规定需检索的字符串值。
// 第一个参数:可选,规定在字符串中开始检索的位置。

console.log(array.indexOf(6));  //-1
console.log(array.indexOf(5));  //3
console.log([1,2,5,2,2,3,4,2].indexOf(2,5));  // 7 第二参数表示,从该数组索引5开始检测
var str="Hello world!"
console.log('-------------');
console.log(str.indexOf("Hello")) // 0
console.log(str.indexOf("World")) // -1  因为大小写敏感
console.log(str.indexOf("world")) // 6
总结:
  • 1.find()与findIndex()参数与用法相同,不同的是find返回元素,findIndex返回索引;找不到时find返回undefined,findIndex返回-1.

  • 2.findIndex()与indexOf(),findIndex比indexOf更强大一些,可以通过回调函数查找对象数组,indexOf只能查找数组中指定的值,不过indexOf可以指定开始查找位置的索引.

  // 可以利用 indexOf() 来去重  例:
  let test = [1,2,5,8,2,1,2,4,'ee','ee','qw','qa','qq','qa']
  let newTest = []
  test.forEach(i => {
    if(newTest.indexOf(i)==-1) 
    newTest.push(i)
  });
  console.log(newTest); // [1, 2, 5, 8, 4, "ee", "qw", "qa", "qq"]

  // 补充: 最简便的去重
  let ar = []
  ar = [...new Set(test)]
  console.log(ar); // [1, 2, 5, 8, 4, "ee", "qw", "qa", "qq"]
相关标签: javascript

上一篇:

下一篇: