Как использовать тернарный оператор при структурировании объекта? - PullRequest
0 голосов
/ 27 сентября 2019

Я помещаю объект в массив на основе данных, поэтому свойства динамически изменяются, пытаясь отобразить значение свойства, которое входит в данные, здесь две опции: данные могут иметь вид data.type.elementType.name или data.type.name, как использовать троичный оператор для назначения либозначение?

main.js

if (item.type.declaration.signatures.length !== 0) {
  var responseData = item.type.declaration.signatures[0].parameters[0].type.declaration.children;
  for (var data of responseData) {
    if (data.name === "details") {
      var detailsName = name === data.type.elementType.name ? data.type.elementType.name : data.type.name;
      interfaceModules.push({ id: "details", name: detailsName });
    }
  }
}

1 Ответ

1 голос
/ 27 сентября 2019

Если вы хотите использовать троичную форму, я полагаю, что вам нужно будет снять условное выражение .name, чтобы избежать исключения попытки доступа к свойству для нулевого элемента.

var detailsName = name === data.type.elementType ? data.type.elementType.name : data.type.name;

Другим вариантом может быть использование elementType, если он существует, в противном случае используйте тип, чтобы затем получить имя.

var detailsName = name === ( data.type.elementType || data.type ).name;
...