Это мой код, который решает проблемы (надеюсь, это может помочь всем, кому это нужно) на основе потока:
Сортировка JS
Fiddle
спасибо @ DavidWinder о подсказке перестановки
function submit()
{
var num = [];
var smallest = 9;
//get the numbers
$('input[name^="num"]').each(function()
{
if ($(this).val() != '')
{
num.push($(this).val());
}
});
var letters = num.toString();
var size = num.length;
$('#result').empty();
var testResults = permutate.getPermutations(letters, size);
var min = 99999999;
$.each(testResults, function(index, item)
{
// $('#result').append("<li>" + item + "</li>");
if (item < min)
{
min = item;
}
});
$('#result').html("Smallest possible number = " + min);
}
//====================================================
var permutate = (function()
{
var results = [];
function doPermute(input, output, used, size, level)
{
if (size == level)
{
var word = output.join('');
results.push(word);
return;
}
level++;
for (var i = 0; i < input.length; i++)
{
if (used[i] === true)
{
continue;
}
used[i] = true;
output.push(input[i]);
doPermute(input, output, used, size, level);
used[i] = false;
output.pop();
}
}
return {
getPermutations: function(input, size)
{
var chars = input.split(',');
var output = [];
var used = new Array(chars.length);
doPermute(chars, output, used, size, 0);
return results;
}
}
})();
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<input type="text" name="num[1]"> <br />
<input type="text" value=74 name="num[2]"> <br />
<input type="text" name="num[1]"> <br />
<input type="text" value=36 name="num[2]"> <br />
<input type="text" name="num[1]"> <br />
<input type="text" name="num[2]"> <br />
<input type="text" value=51 name="num[1]"> <br />
<input type="text" value=98 name="num[2]"> <br />
<input type="text" name="num[1]"> <br />
<input type="text" name="num[2]"> <br />
<input type="submit" id="submit" onclick="submit()">
<div id='result'>Result</div>
</body>
</html>