扩展JavaScript对象

扩展JavaScript对象,javascript,jquery,extend,Javascript,Jquery,Extend,我在一个没有任何表单标记的表中循环输入。我得到的值是正确的。我想用它们的值构建一个包含多个对象的对象 我在期待什么? alarms = { alarm: { status_id: '1', alarm_name: 'Critic', user_id_created: '30021061' }, alarm: { status_id: '1', alarm_name: 'Middle', user_id_created: '30021061' }, alarm: { status_id: '1',

我在一个没有任何表单标记的表中循环输入。我得到的值是正确的。我想用它们的值构建一个包含多个对象的对象

我在期待什么?

alarms = { alarm: { status_id: '1', alarm_name: 'Critic', user_id_created: '30021061' }, alarm: { status_id: '1', alarm_name: 'Middle', user_id_created: '30021061' }, alarm: { status_id: '1', alarm_name: 'Bottom', user_id_created: '30021061' }, ... };
我得到了什么?循环中的最后一个对象

alarms = { alarm: { status_id: '1', alarm_name: 'Bottom', user_id_created: '30021061' } };
代码如下:

var alarms = {}
$('.new_alarm').each(function() {
    var status_id = $(this).children('.status').children().val(),
        alarm_name = $(this).children('.data').children('input[name="alarm_name"]').val(),
        user_id = $('#user_id').text();
        objAux = {};

    if(alarm_name) {            
        objAux = {
            alarm: {
                'status_id': status_id,
                'alarm_name': alarm_name,
                'user_id_created': user_id
            }
        };
    }

    alarms = $.extend(true, alarms, objAux);          
});

jQuery扩展方法有什么问题?为什么不合并对象?

如果我没有弄错的话,您想要的实际上是不可能的。这类似于说您希望数组中的a[1]有5个值

您可以使用数组而不是对象来实现这一点:

alarms = [{...},{...},{...}];
你写的实际上是:

alarms['alarm'] = {...};
alarms['alarm'] = {...};
alarms['alarm'] = {...};
alarms['alarm'] = {...};

在每次迭代中都覆盖相同的属性“alarm”

您应该创建一个数组,然后
push()
数组末尾的值

var alarms = [
      {name: 'alarm1'}
    , {name: 'alarm2'}
    , {name: 'alarm3'}
];


var new_alarms = [];


$(alarms).each(function() {
    console.log(this);
    new_alarms.push(this);
});


console.log(alarms, new_alarms);

请参阅:

我需要这种方式通过AJAX将其发送到Rails服务器。如果我没有弄错的话,Rails只处理散列(也称为JSON对象)。JSON对象肯定可以包含数组,Rails对此应该没有问题。不知道你从哪里得到的,betacar。我需要这种方式通过AJAX将它发送到Rails服务器。如果我没有弄错的话,Rails只处理散列(也称为JSON对象)。不知道你从哪里弄来的,贝塔卡。此外,“我需要这样做”是一件奇怪的事情,说一些物理上和数学上都不可能的事情…一段时间前读过它(不记得在哪里)。谢谢你的文章。:)你真的必须在一行上发布JSON吗?