👋 本文章为我(XXG)原创,由于个人能力有限,此笔记可能会错漏、过时、或需要补充。
📖 笔记文章由于多平台发布,为了修改方便,可以参观我的博客:https://xxggg.github.io
🚀 我会根据我的知识学习,持续更新、完善这些笔记。让它更加通俗易懂,少错误。
🐤 本文章对应博客里的:https://xxggg.github.io/FrontEnd/JavaScript/JS_ArrayFind.html
🟨 JS 数组查找
-
includes()
【判断(字符 / 数组)里有没有这个数】 -
find()
【返回数组中第一个满足条件的key】 -
findIndex()
【从0开始找】【返回index索引】【针对对象】 -
indexOf()
【从0开始找】【返回index索引】【针对普通数组】 -
lastIndexOf()
【从后往前找】【返回index索引】【针对普通数组】
🟨 includes()
判断(字符 / 数组)里有没有这个数
- 第一个参数是要找的
- 第二个是从哪个索引开始找,默认从0开始找
data.includes(找的参数,[可选。从哪个索引位置开始搜寻,默认值为0])
// 返回布尔值 true/false
🌰 举个栗子👇
let arr = [1,2,3]
let xxg = arr.includes(1)
console.log(xxg)//true
let xxgg = arr.includes(1,1) //从第一位往后数!数组的从0开始的
console.log(xxgg)//false
let str = '谢夏戈是个帅哥!'
let xxgg = str.includes('是')
console.log(xxgg)//true
🟨 find()
返回数组中第一个满足条件的数据
let arr = [10, 20, 30, 40, 50, 60, 70, 80, 90];
let xxg = arr.find((item, index) => {
return item > 40;
})
console.log(xxg);//50
🟨 findIndex()
返回数组中第一个满足条件的索引(从0开始), 不满足返回-1
let arr = [10, 20, 30, 40, 50, 60, 70, 80, 90];
let xxg = arr.findIndex((item, index) => {
return item > 40;
})
console.log(xxg);//4
-
findIndex
:比较函数作为第一个参数,多用于非基本类型(例如对象)的数组索引查找,或查找条件很复杂 -
indexOf
:查找值作为第一个参数,采用 === 比较,更多的是用于查找基本类型,如果是对象类型,则是判断是否是同一个对象的引用
🟨 indexOf()
返回数组中第一个满足条件的索引(从0开始), 不满足返回-1
// var num = [10, 20, 30, 40, 50, 60, 70, 80, 90];
let arr = [10, 20, 30, 40, 50, 60, 70, 80, 90];
let xxg = arr.indexOf(40);
let xxgg = arr.indexOf(40, 10);//从索引10的位置开始向后查找
console.log("xxg = " + xxg);//3
console.log("xxgg = " + xxgg);//-1
-
indexOf
更多的是用于查找基本类型,如果是对象类型,则是判断是否是同一个对象的引用
let arr = [{a: 1}, {b: 2}];
console.log(sisters.indexOf({b: 2}));// -1 【找不到这个对象】
const an = {b: 2}
arr = [{a: 1}, an];
console.log(sisters.indexOf(an));// 1 【对象的引用是可以匹配的!】
🟨 lastIndexOf()
返回数组中最后一个满足条件的索引(从0开始), 不满足返回-1
let arr = [10, 20, 30, 40, 50, 60, 70, 80, 90];
let xxg = arr.lastIndexOf(40);
let xxgg = arr.lastIndexOf(40, 9);//从索引1的位置开始向前查找
let xxggg = arr.lastIndexOf(40, 1);//从索引1的位置开始向前查找
console.log(xxg);//3
console.log(xxgg);//3
console.log(xxggg);//-1 从1往前找是找不到的了哦~
网友评论