根据所给值查找并打印索引
方法1:arr对象的方法属性forEach (循环无法中断)
const arr=['内容1','内容2','内容3','内容4']
arr.forEach((item,index)=>{ //(item,index):遍历对象
if(item==='内容3'){
console.log(index) //打印值为'内容3'的索引
}
}
方法2:arr对象的方法属性some (推荐)
const arr=['内容1','内容2','内容3','内容4']
arr.some((item,index)=>{
if(item==='内容3'){
//在找到对应项之后,可以通过 return true 固定的语法,来终止some循环
console.log(index)
return true //return true 即结束循环
}
})
涉及到的知识点
1.Array.forEach
效果:遍历数组
Array.forEach(function(currentValue,index,arr),thisValue)
注意:虽然forEach内部的function是回调函数,但forEach本身可能为同步任务,在内部循环执行完毕后,才会执行下一项同步任务 参考CSDN文章:blog.csdn.net/weixin_3434…
-
其中:
-
callback:数组中每个元素执行的函数,该函数可接受1-3个参数
-
currentValue:表示数组的当前元素项,必须的参数
-
index:当前元素的下标(索引) 可选
-
arr:当前元素所属的数组 可选
-
thisValue:表示执行回调函数callback()时的this指向。 可选
forEach()没有返回值
-
var arr=[1,3,5,7,9]
var res=arr.forEach(function(item,index){
console.log(`数组第${index+1}个元素是${item}`)
})
console.log(res) //undefine,forEach无返回值
forEach的缺陷:
- forEach与for循环不同,即使找到某个满足条件的元素,也无法提前结束,return也不行
Array.some()
效果:遍历数组&&检测数组是否含有满足指定条件的元素
array.some(function(currentValue,index,arr),thisValue)
-
其中:
-
callback:数组中每个元素执行的函数,该函数可接受1-3个参数
-
currentValue:表示数组的当前元素项,必须的参数
-
index:当前元素的下标(索引) 可选
-
arr:当前元素所属的数组 可选
-
thisValue:表示执行回调函数callback()时的this指向。 可选
-
返回值:true/false
-
-
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
-
some() 方法会依次执行数组的每个元素:
-
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
-
如果没有满足条件的元素,则返回false。
\