Как я могу читать специфическое поле внутри объекта JSON, который находится в “X” index array?

У меня есть код, где сохранял X объект JSON с определенной стоимостью одних неудар в лунку формуляра внутри array. Объект, который я сохраняю, - этот:

var arrayProductoInd = {
            "nombre" : nombre,
            "desc" : desc,
            "cant" : cant,
            "track": track,
            "checkMed" : checkMed,
            "ancho" : ancho,
            "largo" : largo,
            "alto" : alto,
            "checkPeso" : checkPeso,
            "peso" : peso
        };

И способ, в котором я это сохраняю внутри array так называемого "arrayProductoInd", этот:

arrayProductos.push(arrayProductoInd);

Сейчас, когда я стараюсь делать html () внутри контейнера, где оно будет являться только именем, сохраняемым внутри каждого из существующих объектов внутри array, он появляется у меня в консоли, которая arrayProductoInd не определена. Однако, когда я беру длину выражения array внутри "for", который я буду показывать далее, да, он это обнаруживает:

$(".productos").html("");

    var contenido = "";

    var k = 0;

    for (var i = 0; i < arrayProductos.length; i++) {

        k++;

        contenido += '<article class="productos producto' + k + '"><h1>' + arrayProductos[i][0] + '</h1><input type="hidden" value="' + i + '"/></article>';
    }

    $(".productos").html(contenido);

Мне не удается понять причину этой ошибки. Я обработал информацию размещая "arrayProductos [i] .nombre" также, но не добился удовлетворительного результата.

3
задан 10.05.2016, 03:59
4 ответа

Проблема была, в котором правильный способ соглашаться объект, который находит внутри один especГ-fico index array, - следующий:

array[x]["atributo"]

В моем случае, чтобы соглашаться на имя продукта, который сохранялся, только нуждался в том, чтобы сделать следующее внутри "for":

arrayProductos[i]["nombre"]

В любом случае, спасибо за Ваше время и помощь.

0
ответ дан 24.11.2019, 14:28

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

используя jquery:

var obj = $.parseJSON(arrayProductoInd);
var nombre = obj['nombre'];

Javascript:

var obj = JSON.parse( arrayProductoInd);
var nombre = obj['nombre'];
1
ответ дан 24.11.2019, 14:28
  • 1
    Не я sirvi и # 243; parse json. Не который podr и # 225; быть проблемой –  Criss 10.05.2016, 04:28
  • 2
    Привет Criss ты используешь arrayProductoInd? не arrarProductos! –  Jorgesys♦ 10.05.2016, 04:31
  • 3
    Привет Елена! prob и # 233; схвати и # 237; tambi и # 233; n, но не функция и # 243;. Не, который и # 225; ошибка. –  Criss 10.05.2016, 04:40

создание объекта json плохое, ты должен бы быть таким:

var arrayProductoInd = {
        nombre:"nombre",
        desc:"desc",
        cant:"cant",
        track:"track",
        checkMed:"checkMed",
        ancho:"ancho",
        largo:"largo",
        alto:"alto",
        checkPeso:"checkPeso",
        peso:"peso"
    };

и чтобы пробегать вышеупомянутый объект, ты можешь делать это так:

for (var key in arrayProductoInd) {
   console.log(' name=' + key + ' value=' + arrayProductoInd[key]);
}

типов Привета

0
ответ дан 24.11.2019, 14:28
  • 1
    Уже появился тот же confusi и # 243; n в вопросе, который я задал в прошлом. Не est и # 225; формулируемое зло объект JSON. Это проистекает того, что признак - просто имя и стоимость - переменная, что est и # 225; предопределенная в c и # 243; я говорю шаги atr и # 225; в. Объект JSON может содержать элементы, которые были бы: 1) Оба strings 2) Признак - string и стоимость - переменная. В любом случае, проблема уже est и # 225; решенный. aclar и # 233; отвечая на мой собственный вопрос м и # 225; s внизу. Спасибо за твое время в любом случае. –  Criss 12.05.2016, 23:50

Проблема находится в определении for.

У первого элемента array в javascript есть индекс 0, из-за которого, если у array есть, например, 4 элемента arrayProductos.length, его будет 4, но индексов, определенных в array будет от 0 до 3.

Ты делаешь циклом от 0 до 4 а следовательно индекс 4 дает тебе ошибку, потому что он не существует.

С другой стороны переменная k берет ту же стоимость, что i а следовательно ты мог бы обходиться без нее.

    $(".productos").html("");
        var contenido = "";
        for (var i = 0; i < arrayProductos.length - 1; i++) {
            contenido += '<article class="productos producto' + i + '"><h1>' + arrayProductos[i][0] + '</h1><input type="hidden" value="' + i + '"/></article>';
        }
        $(".productos").html(contenido);

Обрати внимание, что я определяю array с 0 до arrayProductos.length-1.

-1
ответ дан 24.11.2019, 14:28
  • 1
    Этот ответ неправильный. Цикл for c и # 243; я говорю о вопросе, что он идет с 0 до arrayProductos.length - 1, потому что используется comparador < и не <=; adem и # 225; s цикл этого ответа делает iteraci и # 243; n менее поэтому сам. Например, если arrayProductos.length 4, цикл этого ответа делает 0, 1, 2 (и он не прибывает к 3, оставляя элемент вне цикла) –  Alvaro Montoro♦ 10.05.2016, 16:07
  • 2
    Верный. Видно, что он был todav и # 237; в сонливый способ. –  Asier Villanueva 10.05.2016, 16:24