Выполнить итерацию по массиву json и получить значение вложенного объекта typescript

У меня есть массив для доступа к списку свойств, которые мне удалось получить значение этих свойств, однако в списке есть вложенный объект «Область», который имеет определенное свойство «regionName», которое я хотел бы получить значение, пожалуйста, проверьте код и загруженные изображения для справки.

Я надеюсь, что это имело смысл. Заранее спасибо

  export function CreateStores(xhttp: XMLHttpRequest, storeArray?: Array<PromotionClasses.Store>) {

    while (STORE_TABLE.rows.length > 1) {
        STORE_TABLE.deleteRow(1);
    }
    if (storeArray == undefined) {

        //Convert the response into an array of objects
        storeArray = JSON.parse(xhttp.responseText) as Array<any>;
    }

   CheckForDuplicateStores(storeArray);



    //Get the current row length of the table so we know where to append to 
    let tableRowLength = STORE_TABLE.rows.length as number;
    console.log("Store array is");
 //   console.log(storesInPromotionArray);
    for (let i = 0; i < storeArray.length; i++) {

        //A dictionary containing the key value pair of the stores properties
        let tableData = {};




        //Add the store's id to the storeArray
        let store = new PromotionClasses.Store(storeArray[i]["StoreName"], storeArray[i]["id"]);

        storesInPromotionArray.push(store);
        console.log(storeArray[i]["region"]);
        var check = storeArray[i]["region"];




        //let attr = new PromotionClasses.Attribute(storeArray[i].name, storeArray[i].type, storeArray[i].property);
        //Assingattributes.push(attr);

        //Create and insert a new row

        let row = STORE_TABLE.insertRow(tableRowLength);
        //row.contentEditable = 'true'

        //The first three cells will always be the row number, store number and name
        tableData["#"] = i.toString();
        tableData["Number"] = storeArray[i]["storeNumber"];
        tableData["Name"] = storeArray[i]["storeName"];
        tableData["addressLine"] = storeArray[i]["addressLine"];
        tableData["postcode"] = storeArray[i]["postcode"];
        //****NESTED OBJECT PROPERTY = regionName
        tableData["region"] = storeArray[i]["region"];

image example

Чтобы получить доступ к собственности, вы можете просто вызвать storeArray[i].region.regionName или storeArray[i]["region"]["regionName"]. Но я не уверен, был ли это ваш вопрос.

Kali 31.10.2018 13:43

В обоих случаях имейте в виду, что это не сохранение null. Например. если регион - null, будет исключение с нулевым указателем.

Kali 31.10.2018 13:44

Спасибо за помощь @Quali, я получил данные, которые мне понадобились

cedPound 31.10.2018 14:53
0
3
64
0

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