Как я могу делать push в договоренность javascript из типа { }?

Я пробую производить динамическую договоренность типа { }

tabla.each(function() {

    var ID = $(this).find('td:eq(0)').html();
    var fechaingre = $(this).find("input[id*='dfi']").val();
    var fechafin = $(this).find("input[id*='dff']").val();
    var canadul = $(this).find("select[id*='adul']").val();
    var canchil = $(this).find("select[id*='chil']").val();

    var pre = sessionStorage.key(au);
    var valorprecio = sessionStorage.getItem(pre);

    item = {};
    if (ID !== '') {
        item["id"] = ID;
        item["fechain"] = fechaingre;
        item["fechafin"] = fechafin;
        item["pre"] = valorprecio;
        item["adult"] = canadul;
        item["chil"] = canchil;
        var room = sessionStorage.getItem("users");
        array_room = JSON.parse(room);
        var habitacion = array_room[au];
        item["idroom"] = habitacion.id;
        item.push(item);
    }
    au++;
});
console.log(item);

Однако напечатав в консоли статью покажи ошибку.

каковой была бы правильная форма, чтобы производить одну динамическая договоренность типа

{
    "ID": "1",
    "fechain": "20160101",

},
{
  "ID": "2",
    "fechain": "20160201"
}
0
задан 20.01.2017, 13:33
0 ответов

Как тебе сказал Enmanuel, не возможно, использовать push (), ни Вашу противоположную сторону pop () как методы договоренности

То, что, если тебе может удаваться сделать, если ты нуждаешься, из-за того, что динамический agergación свойств говорит, состоит в том, чтобы относиться к объекту, используя нотацию договоренности против него, применяя к нему это обращение к Вашим свойствам

var objetoDinamico = {}; //hasta aqui es objeto
for(var i = 0; i<10;i++)
{
  objetoDinamico['propiedad_'+i] = 'valor_'+i;
  console.log('Propiedad agregada '+i +' - valor:  '+objetoDinamico['propiedad_'+i])
}
0
ответ дан 03.12.2019, 17:36
  • 1
    Это - то, в чем он нуждался mapusoft спасибо. –  21.01.2017, 12:19

Ты не можешь делать push на одном {} потому что это объект. Чтобы мочь делать это ты должен использовать договоренность или array (коллекция объектов), В этом случае ты должен использовать один []:

Так что, с одной стороны ты создаешь объекты и из-за другого ты вводишь их в договоренности:

Пример:

var obj = {};
var arreglo = [];

obj['nombre'] = 'Jose';
obj['apellido'] = 'Perez';

// aqui puedes hacer push
arreglo.push(obj);

var obj2 = {};

obj2['nombre'] = 'Juan';
obj2['apellido'] = 'Gomez';

// agregas un segundo elemento al arreglo
arreglo.push(obj2);

console.log(arreglo);

Tene в счете, что правильный формат коллекции JSON [ {}, {} ]а именно, что окружен между [ и ], что-то, что ты не поместил в пример вопроса. Я надеюсь, что он подает тебя, salu2

2
ответ дан 03.12.2019, 17:36

Эта остальные, которые он говорил бы тебе, что функция push только доступна для договоренностей, в твоем случае, чтобы решать твою проблему, состоит в том, чтобы создавать другую переменную типа договоренности, которая содержала бы каждую статью.

var items = [];
tabla.each(function() {
var ID = $(this).find('td:eq(0)').html();
var fechaingre = $(this).find("input[id*='dfi']").val();
var fechafin = $(this).find("input[id*='dff']").val();
var canadul = $(this).find("select[id*='adul']").val();
var canchil = $(this).find("select[id*='chil']").val();

var pre = sessionStorage.key(au);
var valorprecio = sessionStorage.getItem(pre);

var item = {};
if (ID !== '') {
    var room = sessionStorage.getItem("users");
    var array_room = JSON.parse(room);
    var habitacion = array_room[au];

    item["id"] = ID;
    item["fechain"] = fechaingre;
    item["fechafin"] = fechafin;
    item["pre"] = valorprecio;
    item["adult"] = canadul;
    item["chil"] = canchil;
    item["idroom"] = habitacion.id; // Posible error 'undefined'
    items.push(item);
}
au++;
});
console.log(items);

Другая рекомендация была бы что сила, что был по крайней мере реестр в "array_room".

1
ответ дан 03.12.2019, 17:36

чтобы делать один push в договоренность javascript он такой:

arreglo.push({ var1, var1, var3 });
0
ответ дан 03.12.2019, 17:36