Объединение переменных в двойном вложенном цикле

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

Затем я пытаюсь объединить строку со значением ключа (атрибутом), чтобы получить данные, связанные со строкой и ключом (столбцом).

Тем не менее, я продолжаю получать [object Object].KeyName,

В любом случае я могу объединить row[i] с fields[j].value (где fields[j].value адрес), чтобы получить row[i].Address?,

            var substring = "<tr><td>" + rows[i].institutionName +"</td>";
            for(j=0; j<fields.length; j++)
            {

                if(fields[j].checked)
                {
                    var checkbox = rows[i] + "." + fields[j].value;
                    substring += "<td>" + checkbox +"</td>";

                }

            }
            str += substring;

        }
        str += "</table>";

1 ответ

Решение

Как это:

row[i][ fields[j].value ]; 

В javascript к свойствам объекта можно (обычно) обращаться двумя способами: obj.prop или же obj["prop"] для динамического выбора свойств. Другими словами, row[i].Address эквивалентно row[i]["Address"]

Примечание: не забывайте, что переменные и свойства javascript чувствительны к регистру, и условием является использование camelCase вместо PascalCase для свойств объекта (опять же, обычно.) row[i]["Address"] не будет таким же как row[i]["address"]

Другие вопросы по тегам