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.
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>