Array对象方法(三)indexOf/lastIndexOf/includes/at/find/findIndex

691 阅读1分钟

javaScript Array数组对象关于查找的方法 indexOf/lastIndexOf/includes/at/find/findIndex

indexOf、lastIndexOf作用

  • indexOf:查找对应的元素是否在数组中,有则返回数组第一个为该值的索引位置,没有则返回
  • lastIndexOf:查找对应的元素是否在数组中,有则返回数组最后一个为该值的索引位置,没有则返回
let arr = [9, 'a', 7, 'b', 5, 'luck', 5, 'haha'];
console.log(arr.indexOf(5));  // 4
console.log(arr.indexOf('kobe')); // -1
console.log(arr.lastIndexOf(5));  // 6
console.log(arr.lastIndexOf('kobe')); // -1

includes、at作用

  • includes:数组中是否存在对应的元素
  • at:传入一个索引值,返回对应的内容,负数表示从尾部开始计算。例如:-1表示最后一个,-2表示倒数第二个
let arr = [9, 'a', 7, 'b', 5, 'luck', 5, 'haha'];
console.log(arr.includes(7)); // true
console.log(arr.includes(6666)); // false
console.log(arr.at(-1)); // haha
console.log(arr.at(5)); // luck
console.log(arr.at(10)); // undefined

find、findIndex作用

  • find:查找满足条件的第一个数组元素,并返回对应的值
  • findIndex:查找满足条件的第一个数组元素,并返回对应的索引

基本数组用法

arr = [9, 'a', 7, 'b', 5, 'luck', 5, 'haha'];
console.log(arr.find(value => {
  return value > 6;
})); // 9
console.log(arr.findIndex(value => {
  return value > 6;
})); // 0

数组中含有对象时的用法

const objArr = [
  { name: 'zg', age: 18 },
  { name: 'kobe', age: 44 },
  { name: 'lucy', age: 20 }
];
console.log(objArr.find(item => {
  return item.age > 20;
}));
/**结果
{
  "name": "kobe",
  "age": 44
}
*/

console.log(objArr.find(item => {
  return item.name == 'hello';
}));
// undefined

console.log(objArr.findIndex(item => {
  return item.name == 'kobe';
})); 
// 1

console.log(objArr.findIndex(item => {
  return item.age < 0;
})); 
// -1