Best practice when sorting an array in pure javascript, if I have to send one group to the back
<p>If I have the following array:</p>

<pre><code>[0, 1, 3, 0, 4, 2]
</code></pre>

<p>And I'd like to sort it ascending order, barring zeros which I need on the end:</p>

<pre><code>[1, 2, 3, 4, 0, 0]
</code></pre>

<p>Bear in mind I don't have access to underscore or linq.js for this solution.
My current solution works, but feels quite heavy, long, and not very elegant. Here's my code:</p>

<pre><code>        function sortNumbers(numbers) {
        var zeroNumbers = [];
        var notZeroNumbers = [];

        for (var i = 0; i &lt; numbers.length; i++) {
            if (numbers[i] === 0) {
                zeroNumbers.push(numbers[i]);
            } else {
                notZeroNumbers.push(numbers[i]);
            }
        }

        var sortedNumbers = notZeroNumbers.sort(function (a, b) {
            return parseFloat(a) - parseFloat(b);
        });

        for (var x = 0; x &lt; zeroNumbers.length; x++) {
            sortedNumbers.push(zeroNumbers[x]);
        }

        return sortedNumbers;
    }
</code></pre>

<p><strong>Can I improve on this solution?</strong></p>