Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!us.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Ben Bacarisse Newsgroups: comp.lang.javascript Subject: Re: Overflow, integers and strings Date: Thu, 30 Apr 2015 20:36:45 +0100 Organization: A noiseless patient Spider Lines: 52 Message-ID: <877fst8l2q.fsf@bsb.me.uk> References: <09495c64-e320-46ca-a6d9-b9f0427c7efd@googlegroups.com> <66061bf2-9092-42a5-918e-5a039a53db20@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="017616aa25f81ec581c44d76d61ba2f3"; logging-data="11149"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18xgtFAJDeD/7YLz5tINYiqjHoVZ0fbb1o=" Cancel-Lock: sha1:cuAHp0h2M9Vjm2YcCKts11V34ss= sha1:UUQZCLN3M4gJJooIZaVXFiDN0tQ= X-BSB-Auth: 1.1c24de560ed6dee12296.20150430203645BST.877fst8l2q.fsf@bsb.me.uk Xref: csiph.com comp.lang.javascript:27438 "Evertjan." writes: > The whole lacks logic, code-beauty and perhaps speed, > please try: > > function arrCompareSmaller(A, B) { > > var AA = A.length; > var BB = B.length; > > if(AA > BB) > return false; // greater > > if(AA < BB) > return true; // smaller > > // so: AA == BB > for(i = AA - 1; i > -1; i-- ) (missing var) > if(A[i] > B[i]) > return false // greater > else > if(A[i] < B[i]) > return true; // smaller > > return false; // because is equal > > }; You've made the main points I was going to make, but, for what it's worth, I was going to suggest this: function arrCompareSmaller(A, B) { var alen = A.length, blen = B.length; if (alen == blen) { var i = alen - 1; while (i >= 0 && A[i] == B[i]) --i; return i >= 0 && A[i] < B[i]; } else return alen < blen; } and remark that the OP seems to be ignoring negative numbers, but I don't suppose he's bothered by that. -- Ben.