Через Ajax от сервера получаю объект в котором содержатся записи из БД, затем через jQuery метод $.each() обхожу записи и создаю на их основе таблицу.
// ....
var output; // строки выводимые на странице
var i = 0;
$.each(response, function(key, val) { // обходим массив записей
output +='<tr>';
output +='<td>' + val.date_created + '</td>'; // Дата запроса
output +='<td>' + val.numbers_count + '</td>'; // количестов телефонных номеров
output +='<td>' + val.process_type.name + '</td>'; // Тип процесса
output +='<td>' + val.src_org.name + '</td>'; // Имя запрашивающего
output +='<td>' + val.src_org.code + '</td>'; // Код запрашивающего
output +='<td>' + val.dst_org.name + '</td>'; // Имя ответчика
output +='<td>' + val.dst_org.code + '</td>'; // Код ответчика
output +='<td>' + val.process_status.name + '</td>'; // Статус
output +='</tr>';
i++;
});
// ....
Записи которые я получаю в val создаются по такой JSON схеме:
{
"Id":"130",
"process_status":{"name":"Active"},
"numbers_count":1,
"date_created":"2016-02-24",
"dst_org":{"name":"OOO Скрудж", "code":"Scrooge"},
"src_org":{"name":"ООО БратьяГавс", "code":"BeagleBoys"},
"date_transfer":"2016-03-21 15:00:00+03","process_state":{"name":"Wait for donor confirm"}
}
Некоторые свойства вложенные, например свойство
ответчик - dst_org, которое содержит в себе имя ответчика и его код.
Проблема в том что у некоторых записей нет, например свойства
dst_org.name (имя ответчика)у других нет
val.dst_org.code (код ответчика), либо вообще отсутствует
dst_org (Ответчик) Поэтому когда свойство
dst_org.name отсутствует появляется ошибка.
Я пробовал проверять наличие свойств через undefined но не сработало, все равно выводится ошибка
Uncaught TypeError: Cannot read property 'name’
Как на стороне JS можно проверит свойство у объекта на его отсутствие когда я обхожу объект через метод $.each() ?