Javascript: Array.prototype.findIndex()

The <strong><span style="color: #333333;">findIndex()</span></strong> method returns the index of the first element in the array that satisfies the provided testing function. Otherwise, it returns -1, indicating no element passed the test.

 

StackOverflow

Given:

<span class="kwd">var</span><span class="pln"> peoples </span><span class="pun">=</span> <span class="pun">[</span>
  <span class="pun">{</span> <span class="str">"attr1"</span><span class="pun">:</span> <span class="str">"bob"</span><span class="pun">,</span> <span class="str">"attr2"</span><span class="pun">:</span> <span class="str">"pizza"</span> <span class="pun">},</span>
  <span class="pun">{</span> <span class="str">"attr1"</span><span class="pun">:</span> <span class="str">"john"</span><span class="pun">,</span> <span class="str">"attr2"</span><span class="pun">:</span> <span class="str">"sushi"</span> <span class="pun">},</span>
  <span class="pun">{</span> <span class="str">"attr1"</span><span class="pun">:</span> <span class="str">"larry"</span><span class="pun">,</span> <span class="str">"attr2"</span><span class="pun">:</span> <span class="str">"hummus"</span> <span class="pun">}</span>
<span class="pun">];</span>

.. There’s now a great way of doing this called findIndex which takes a function that return <span style="color: #242729;">true</span>/<span style="color: #242729;">false</span> based on whether the array element matches (as always, check for browser compatibility though).

<span class="kwd">var</span><span class="pln"> index </span><span class="pun">=</span><span class="pln"> peoples</span><span class="pun">.</span><span class="pln">findIndex</span><span class="pun">(</span><span class="kwd">function</span><span class="pun">(</span><span class="pln">person</span><span class="pun">)</span> <span class="pun">{</span>
  <span class="kwd">return</span><span class="pln"> person</span><span class="pun">.</span><span class="pln">attr1 </span><span class="pun">==</span> <span class="str">"john"</span>
<span class="pun">}</span>

With ES6 syntax you get to write this:

<span class="kwd">var</span><span class="pln"> index </span><span class="pun">=</span><span class="pln"> peoples</span><span class="pun">.</span><span class="pln">findIndex</span><span class="pun">(</span><span class="pln">p </span><span class="pun">=></span><span class="pln"> p</span><span class="pun">.</span><span class="pln">attr1 </span><span class="pun">==</span> <span class="str">"john"</span><span class="pun">)</span>