首页 > 解决方案 > JQuery:数组和排序

问题描述

你能帮助我吗?

我有问题:

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

例子:

一个。输入:[1, 2, 3]-> 输出:123

湾。输入:[1,10,100] -> 输出:100101

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

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

感谢您的帮助

标签: jqueryarrayssorting

解决方案


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

JS排序

小提琴

感谢@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>


推荐阅读