javascript findIndex回调参数

时间:2017-07-27 11:19:53

标签: javascript

我是javascript的新手。

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

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

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

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

由于

3 个答案:

答案 0 :(得分:3)

indexOf功能怎么样?你只需传递一个参数,作为搜索元素。



let arr = ['a','b','c'];

console.log(arr.indexOf('b'));




答案 1 :(得分:1)

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

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功能与自定义回调相结合可用于更复杂的搜索,例如:处理复杂的结构化对象时。

答案 2 :(得分:0)

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>