Прежде всего, вам нужно создать объект JSON вместо массива. Таким образом, инициализация переменных и полей 1-го уровня должна выполняться следующим образом.
var minmax_array = {};
$(".room_minmax_div").each(function(index, data) {
var room = $(this).data('room');
minmax_array[room] = {};
});
Затем, когда вы обновляете объект второго уровня с помощью значения max
или min
, вы должны проверить, есть ли уже является объектом, назначенным этому ключу. Если да, вам следует обновить этот объект вместо того, чтобы назначать совершенно новый.
$(".room_minmax_div input").each(function(index, data) {
//get date
var room = $(this).data('room');
var name = $(this).attr('name');
var value = $(this).val();
if(value == ''){
value = 0;
}
// If there is a value for minmax_array[room], use it as obj. Otherwise create an empty object
var obj = minmax_array[room] || {};
//Obj
obj[name] = value;
minmax_array[room] = obj;
});
Тогда ваш результат будет примерно таким, как показано ниже.
{
Room1: {
max: "14",
min: "10"
},
Room2: {
max: "7",
min: "5"
},
Room3: {
max: "10",
min: "9"
}
}