对象中的动态变量名称

时间:2019-04-28 11:22:27

标签: jquery

我正在尝试创建一个jquery代码,以获取所有这些隐藏的输入名称和值,并将其放入我的$.ajax({ .. })帖子的数据字符串中。

var obj = {}; //object
var arr =  []; //array
var hidden_fields = $( 'form#frm_vehicle input[type=hidden]' ).each(
        function(index){  
            var input = $(this);
            _name = ""+input.attr('name')+"";
            _val = input.val();
            obj = {
                _name : _val
            }
            arr.push(obj);
            //alert('Type: ' + input.attr('type') + ' Name: ' + input.attr('name') + ' Value: ' + input.val());
        }
    );
console.log(arr);

在上面的代码中,我将如何在此处创建动态_name

obj = {
        _name : _val
      }

还是有更好的方法来做到这一点?谢谢

1 个答案:

答案 0 :(得分:0)

这实际上是一个合法的问题,对此有一个非常好的解决方案。 在ES6中,您可以像这样使用动态对象键:

var obj = {
  [key]: 'value'
}

其中“ key”是包含您要使用的密钥名称的变量。

如果您不能使用es6,我会使用Blackhole在评论中建议的解决方案。