繁体   English   中英

javascript findIndex回调参数

[英]javascript findIndex callback arguments

我是javascript新手。

我试图在数组中找到特定元素的索引。 我了解到可以使用findIndex遍历数组。 但是似乎findIndex只接受三个参数:元素,索引和数组。 如果要更改用于比较的对象该怎么办。

例如,我要在数组['a','b','c']查找字符串'b'的索引,

var position = ['a','b','c'].findIndex(function(element, index, array){return element==='b'})

但是我如何传递'b'作为可以更改为回调函数的参数

谢谢

indexOf函数呢? 您只需传递一个参数作为搜索元素。

 let arr = ['a','b','c']; console.log(arr.indexOf('b')); 

您可以在回调函数的外部上下文中定义所需的字符:

 var wantedChar = 'c'; var position = ['a','b','c'].findIndex(function(element, index, array){return element===wantedChar}) console.log(position); 

这样,您可以将所有内容包装在一个函数中:

 var findPos = function(arr, char){ return arr.findIndex(function(element, index, array){return element===char}); } console.log(findPos(['a','b','c'], 'c')); 

注意:正如已经建议的,在比较字符串时使用indexOf更有意义。 结合了自定义回调的findIndex函数可用于更复杂的搜索,例如在处理复杂的结构化对象时。

 function getPosition(){ var position = ["a","b","c"]; var a = position.indexOf("b"); document.getElementById("demo").innerHTML = a; } 
 <button onclick="getPosition()">button</button> <p id="demo"></p> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM