理解Javascript / Typescript中的findIndex函数

5

我正在处理一段JS代码。在教程中,我发现了一段我不理解的代码:

const position = this.quotes.findIndex((quoteEl: Quote) => {
  return quoteEl.id == quote.id;
});

我认为编写代码的人将许多不同的部分塞进了这一行。有人能帮我将其转化为更易理解的形式吗?

例如,findIndex方法的参数可能可以单独编写成一个函数,对吧?

谢谢, Benjamin


findIndex的实现大致如下: 遍历数组,将每个元素传递给传入的回调函数并检查响应。如果为true,则中断循环并返回元素的索引;否则发送一个默认值,最好是-1。 - binariedMe
2
Array.prototype.findIndex() 接受一个自定义比较函数,并返回它找到的第一个 true 的索引,=> 是箭头函数。 - Patrick Barr
1个回答

9

findIndex 调用传入的函数来遍历数组中的每个元素,并返回第一个返回 true 的元素的索引,如果没有返回则为-1

这是您的回调函数。

(quoteEl: Quote) => {
  return quoteEl.id == quote.id;
}

没错。此外,我想指出这里有一个很好的解释:https://stackoverflow.com/documentation/javascript/5007/arrow-functions#t=201706202302591361213 - Ben Spi
我可以再问一下吗?函数的参数是“quoteEl:Quote”,即类型为Quote的新定义变量,每个“quotes”数组元素都将设置它,对吗?但是“quote.id”从哪里来?它在这段代码之外定义了吗? - Ben Spi
(quoteEl: Quote) 表示该函数期望传入一个类型为 Quote 的对象,但是在您提供的代码中确实没有定义。 - pishpish
@BenSpi 很遗憾,Stack文档已经关闭,所以你提供的链接不再有效。 - OrwellHindenberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接