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