JavaScript数组find方法如何利用回调的array参数获取指定元素
原代码输出1的原因
Array.prototype.find() 的核心逻辑是顺序遍历数组元素,每遍历一个就执行一次回调函数:只要回调返回真值(JS中会被隐式转为true的值),就立刻返回当前遍历的元素,终止遍历。
你的代码里回调直接返回了array参数,也就是原数组[1,2,3,4,5,6],非空数组属于典型的真值,所以第一次遍历第一个元素1的时候回调就命中了真值条件,find直接返回1,最终输出就是1。
基于array参数设置条件输出3的实现
要拿到3,只需要让回调在遍历到元素3的时候返回真值即可。如果要求条件基于array参数设置,只需要从array中取目标值做匹配就行,实现代码如下:
var check = [1,2,3,4,5,6]; var check1 = check.find((elements, index, array) => { // 从array参数中按索引取目标值和当前元素匹配 return elements === array[2]; }); console.log(check1);
如果要匹配的是值为3的元素(不确定索引的场景),也可以这么写:
var check = [1,2,3,4,5,6]; var check1 = check.find((elements, index, array) => { // 从array参数中筛选出值为3的元素和当前元素匹配 return elements === array.find(item => item === 3); }); console.log(check1);
内容的提问来源于stack exchange,提问作者Prakhar Agarwal
相关产品推荐
相关产品推荐

