var itemArray = [[8],[6],[4],[3],[3],[2],[1],[1]], ins = [4.2]; // insert ins into itemArray; len = itemArray.length, start = 0; while ((len /= 2) > 1) { start += itemArray[Math.ceil(start + len)][0] > ins[0] ? len : 0 } itemArray.splice(Math.ceil(start + (itemArray[Math.ceil(start)][0] > ins[0])), 0, ins ); foo.innerHTML = itemArray.join('<br>');
<div id="foo"></div>