@inviziblll

Как проверить наличие свойства у объекта?

Через 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() ?
  • Вопрос задан
  • 910 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
val.hasOwnProperty('dst_org')
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
archakov06
@archakov06
Frontend-разработчик (ReactJS)
if (!arr[index].dst_org.code) ...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы