доступ к дочернему объекту json не в массиве - PullRequest
1 голос
/ 12 июня 2019

Я пытаюсь получить доступ к дочернему объекту json, которого нет в массиве.Я пытался получить доступ к нему с помощью моего ниже сценария, но он не работает.я хочу иметь возможность доступа к объекту menuCategory

JSON

 [
  {
    "id": 67,
    "name": "Wednesday Menu",
    "serveDate": "2019-06-12 00:00:00",
    "expiryDate": "2019-06-12 16:11:00",
    "status": "APPROVED",
    "isEnabled": true,
    "meals": [
      {
        "id": 45,
        "name": "Waakye, Gari and Wele",
        "description": "A very well designed food for all kids",
        "image": "",
        "mealType": "LUNCH",
        "unitPrice": 30,
        "status": "ENABLED"
      },
      {
        "id": 46,
        "name": "Gari and Beans",
        "description": "A very well designed food for all kidsss",
        "image": "",
        "mealType": "LUNCH",
        "unitPrice": 12,
        "status": "ENABLED"
      }
    ],
    "menuCategory": {
      "id": 2,
      "name": "hello"
    }
  }
]

JAVASCRIPT

callEditMenu(parent, content) {
  this.modalService.open(content);
  this.editMenuCategoryId = parent.menuCategory.id;
}

Ответы [ 4 ]

1 голос
/ 12 июня 2019

Если родительский аргумент в функции callEditMenu ссылается на JSON, который вы включили, попробуйте parent[0].menuCategory.id

1 голос
/ 12 июня 2019

Может быть как

const parent = [{"id":67,"name":"Wednesday Menu","serveDate":"2019-06-12 00:00:00","expiryDate":"2019-06-12 16:11:00","status":"APPROVED","isEnabled":true,"meals":[{"id":45,"name":"Waakye, Gari and Wele","description":"A very well designed food for all kids","image":"","mealType":"LUNCH","unitPrice":30,"status":"ENABLED"},{"id":46,"name":"Gari and Beans","description":"A very well designed food for all kidsss","image":"","mealType":"LUNCH","unitPrice":12,"status":"ENABLED"}],"menuCategory":{"id":2,"name":"hello"}}]

console.log(parent[0].menuCategory.id);
0 голосов
/ 12 июня 2019

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

let obj = [
  {
    "id": 67,
    "name": "Wednesday Menu",
    "serveDate": "2019-06-12 00:00:00",
    "expiryDate": "2019-06-12 16:11:00",
    "status": "APPROVED",
    "isEnabled": true,
    "meals": [
      {
        "id": 45,
        "name": "Waakye, Gari and Wele",
        "description": "A very well designed food for all kids",
        "image": "",
        "mealType": "LUNCH",
        "unitPrice": 30,
        "status": "ENABLED"
      },
      {
        "id": 46,
        "name": "Gari and Beans",
        "description": "A very well designed food for all kidsss",
        "image": "",
        "mealType": "LUNCH",
        "unitPrice": 12,
        "status": "ENABLED"
      }
    ],
    "menuCategory": {
      "id": 2,
      "name": "hello"
    }
  }
];

obj.forEach(elem => {
  console.log(elem.menuCategory.name);
});
0 голосов
/ 12 июня 2019
let arr = [{"id":67,"name":"Wednesday Menu","serveDate":"2019-06-12 00:00:00","expiryDate":"2019-06-12 16:11:00","status":"APPROVED","isEnabled":true,"meals":[{"id":45,"name":"Waakye, Gari and Wele","description":"A very well designed food for all kids","image":"","mealType":"LUNCH","unitPrice":30,"status":"ENABLED"},{"id":46,"name":"Gari and Beans","description":"A very well designed food for all kidsss","image":"","mealType":"LUNCH","unitPrice":12,"status":"ENABLED"}],"menuCategory":{"id":2,"name":"hello"}}]

for (let item of arr)  {
  if (item.hasOwnProperty("menuCategory")) {
    console.log(item["menuCategory"]);
  }
};

let res = arr.filter((item) => item && item.menuCategory);
console.log(res[0].menuCategory);

В случае, если вам нужно найти его динамически. Выше два разных способа

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