Alex, here is how you should use the Array#some in order to solve your problem:<div><br></div><div>var howManyConditions = 5;</div><div>yourArray.some(function (value) {</div><div>  if (conditionSatisfied(value)) {</div><div>
    --howManyConditions;</div><div>  }</div><div>  return !howManyConditions;</div><div>});</div><div><br></div><div>in this case, as Brendan said, you don't even need a copy.</div><div><br></div><div>If the creation of new variables is the problem ...</div>
<div><br></div><div>yourArray.some(function(value){</div><div>  if (conditionSatisfied(value)) {</div><div>    --this.breakLoop;</div><div>  }</div><div>  return !this.breakLoop;</div><div>}, {breakLoop:5});</div><div><br>
</div><div>you can reuse both callback, if defined elsewhere once, and the object for those conditions ... well, you have many options, same is for every. One thing you might need is to save the last index somehow if needed for a splice later on.</div>
<div><br></div><div>br</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Nov 13, 2012 at 1:12 PM, Alex Vincent <span dir="ltr"><<a href="mailto:ajvincent@gmail.com" target="_blank">ajvincent@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The some method, as currently implemented, isn't truly better.  Mathematically, I think Array.prototype.some would be equivalent to my suggested Array.prototype.filter(callback, thisObj, 1);<div class="HOEnZb">
<div class="h5"><br><br><div class="gmail_quote">
On Tue, Nov 13, 2012 at 12:33 PM, Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.org" target="_blank">brendan@mozilla.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>Andrea Giammarchi wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
wait, I might have misunderstood your problem ... so you want to stop iterating, right ?<br>
<br>
When that is the case, you can simply drop the iteration like this:<br>
<br>
myArray.slice().filter(<u></u>function (value, index, original) {<br>
  // do your stuff<br>
  if (conditionSatisfied) {<br>
    original.length = 0;<br>
  }<br>
});<br>
<br>
there, you can break the iteration as easy as that :-)<br>
</blockquote>
<br></div>
Making a copy and then mutating its length seems worse than using some, though.<span><font color="#888888"><br>
<br>
/be<br>
<br>
</font></span></blockquote></div><br><br clear="all"><br></div></div><div class="HOEnZb"><div class="h5">-- <br>"The first step in confirming there is a bug in someone else's work is confirming there are no bugs in your own."<br>
-- Alexander J. Vincent, June 30, 2001<br>

</div></div></blockquote></div><br></div>