将输入字段中的所有值放入数组并对其进行排序

时间:2015-11-29 11:46:03

标签: javascript arrays jquery-selectors

对于我的RPG会话我想创建一个Initiative助手,所以我有2个输入字段,数字+文本,其中number是修改器 d20 roll和text是主题的名称(player或npc) - > html(bootstrap组件)的例子(我有6行这样的12个数字/文本输入对):

<div class="row">
    <div class="col-lg-6">
        <p>Modifier + Player</p>
        <div class="input-group">
            <span class="input-group-addon">
                <input type="number" min="-5" step="1" placeholder="0">
            </span>
            <input type="text" class="form-control" placeholder="player1">
        </div>
    </div>
    <div class="col-lg-6">
        <p>Modifier + NPC</p>
        <div class="input-group">
            <span class="input-group-addon">
                <input type="number" min="-5" step="1" placeholder="0">
            </span>
            <input type="text" class="form-control" placeholder="monster1">
        </div>
    </div>
</div>

目前我将点击按钮的所有值都读入对象,但这不是最佳的基础:

var subjects = {};
$("#create").click(function() {
    subjects.mod = $("input[type=number]").map(function() { return this.value; }).get();
    subjects.name = $("input[type=text]").map(function() { return this.value; }).get();
});

因为现在我有一个包含数组中所有数字和名称的对象

Object {
    mod=[12], 
    name=[12]
} 

但我需要两个属性耦合到一个对象:

object1 { 
    "name":"player1", 
    "iniNumber": 17
},
object2 {
    "name":"npc1",
    "iniNumber": 10
},
...

我有一个功能可以滚动d20 +为最终的主动值添加修饰符,但我太愚蠢了,无法解决现有的问题......

我目前的问题:

  1. 如何从输入字段创建耦合的数字+名称对象,使用哪个选择器/函数?
  2. 我如何按降序排序? (我想我可以自己做到这一点1)得到纠正)

1 个答案:

答案 0 :(得分:0)

我希望这是你正在寻找的。

// At first there was nothing.
var npcs = [];

// Someone eventually interacted with reality.
$('#create').click(function(){
  // For every row in now... (You should add another class because you only want npc rows)
  $('.row').each(function(i, $row){
      // Create object from inputs of a specific row from this dimension.
      var newNpc = {
        name: $('input[type=text]', $row).val(),
        iniNumber: $('input[type=number]', $row).val()
      };

      // Add object to array to fill our insecurities.
      npcs.push(newNpc);
  });
});