![](/img/trans.png)
[英]How to take a dynamic input inside a findIndex callback function in Javascript?
[英]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.