I know another easy way to do this with only one loop but not in jquery way. var arrayA=[1,2,3,4,5] var arrayB=[1,b,c,1,2] for(var i=0;i<arrayA.length;i++) { if(arrayB.indexOf(arrayA[i]) != -1) { return true; } return false; }
Michael Geary wrote: > > >> From: Potluri >> >> Is there a jquery way to compare two arrays without looping. >> >> like I have an array1 [a,b,1,2,3] >> and array2 [b,c,d,11 ]. >> >> Is there a way like array1.compare(array2). which returns >> true if atleast one element among the 2 arrays matches. > > Somebody has to loop, whether it's you or jQuery. :-) > > I don't know of anything built into jQuery, but if all the array elements > are numbers or strings, it's easy to write a function that should be > reasonably fast (certainly much faster for long arrays than the obvious > nested loop solution): > > function arrayMatch( a, b ) { > var o = {}; > for( var i = a.length; --i >= 0; ) > o[ a[i] ] = true; > for( var i = b.length; --i >= 0; ) > if( o[ b[i] ] ) > return true; > return false; > } > > It may be possible to pick up some extra speed in the case where one array > is much longer than the other, by choosing the shorter vs. longer array > for > each of the two steps. But it's not certain which would be faster - the > short array in the first loop, or the short array in the second loop. You > would have to benchmark it in a variety of browsers to know for sure. > > If the arrays may contain other kinds of objects (e.g. if a, b, etc. in > your > example are object references and not strings or string variables), then > you'd have to go back to the nested loops instead of the above code. > > Now watch somebody make a fool of me and point to a jQuery function for > this. :-) > > -Mike > > > -- View this message in context: http://www.nabble.com/compare-two-arrays-tf4344387s15494.html#a12387938 Sent from the JQuery mailing list archive at Nabble.com. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery (English)" group. To post to this group, send email to jquery-en@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jquery-en?hl=en -~----------~----~----~----~------~----~------~--~---