jQuery的:数组和顺序

时间:2018-10-18 16:30:01

标签: jquery arrays sorting

你能帮我吗?

我有问题:

如何返回一个尽可能小的数字,该数字可以通过将所有接收到的数字进行字符串连接来构造。

示例:

a。输入:[1、2、3]->输出:123

b。输入:[1、10、100]->输出:100101

c。输入:[100,97,23,1]->输出:10012397

d。输入:[9041,376,5,10]->输出:1037659041

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

这是我解决问题的代码(我希望这可以帮助需要它的任何人) 基于线程:

JS Sorting

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>