Angular чтобы сплющить или массировать массив - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть JSON ответ с массивами массивов объекта. Я бы хотел angular узнать, как выровнять его для отображения в таблице материалов. Я хотел бы свести accessID и des c в плоский массив, такой как [ADPRATE, QUOCON, USRIDMAN].

"data": [
    [
        {
            "categoryId": "ADPDSHB",
            "categoryDesc": "Dashboard - Admin",
            "categoryAccess": [
                {
                    "BoRefAccess": {
                        "accessId": "ADPRATE",
                        "accessDesc": "Adoption Rate"
                    }
                },
                {
                    "BoRefAccess": {
                        "accessId": "QUOCON",
                        "accessDesc": "Quotation Conversion "
                    }
                }
            ]
        }
    ],
    [
        {
            "categoryId": "USRMAN",
            "categoryDesc": "User Management",
            "categoryAccess": [
                {
                    "BoRefAccess": {
                        "accessId": "USRIDMAN",
                        "accessDesc": "User ID Management"
                    }
                }
            ]
        }
    ]
]

Новый ожидаемый результат, сглаживая внутренний массив

  {
       {
        "categoryId": "ADPDSHB",
        "categoryDesc": "Dashboard - Admin",
        "categoryAccess": 
            {
                "BoRefAccess": {
                    "accessId": "ADPRATE",
                    "accessDesc": "Adoption Rate"
                }
            },
         },
            {
        "categoryId": "ADPDSHB",
        "categoryDesc": "Dashboard - Admin",
        "categoryAccess": 
            {
                "BoRefAccess": {
                    "accessId": "QUOCON",
                    "accessDesc": "Quotation Conversion"
                }
            },
         },

пример таблицы

enter image description here

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Пожалуйста, попробуйте вот так.

const data = {"data": [
    [
        {
            "categoryId": "ADPDSHB",
            "categoryDesc": "Dashboard - Admin",
            "categoryAccess": [
                {
                    "BoRefAccess": {
                        "accessId": "ADPRATE",
                        "accessDesc": "Adoption Rate"
                    }
                },
                {
                    "BoRefAccess": {
                        "accessId": "QUOCON",
                        "accessDesc": "Quotation Conversion "
                    }
                }
            ]
        }
    ],
    [
        {
            "categoryId": "USRMAN",
            "categoryDesc": "User Management",
            "categoryAccess": [
                {
                    "BoRefAccess": {
                        "accessId": "USRIDMAN",
                        "accessDesc": "User ID Management"
                    }
                }
            ]
        }
    ]
]}

Редактировать : на основе комментария

data.data.map(item => {
    console.log(item[0])
    return {
       "categoryId" : item[0].categoryId,
       "categoryDesc" : item[0].categoryDesc, 
       "categoryAccess" : item[0].categoryAccess.filter(access =>access["BoRefAccess"].accessId === item[0].categoryId) 
    }
})

эта логика c отфильтровать массив доступа к категории .it будет отображаться только элемент с идентификатором категории samme. надеюсь, это то, что вы ищете.

0 голосов
/ 15 апреля 2020

Вы можете сделать несколько пользовательских циклов, если бы знали, что они основаны на этих свойствах specefi c.

 let newDataObject;
 const idArray = [];
 const descArray = []
       data.forEach(objectArray => {
             objectArray.forEach(object => {
                 object.categoryAccess.forEach(category => {
                     idArray.push(category.BoRefAccess.accessId);
                     descArray.push(category.BoRefAccess.accessDesk);
                 }
             }
       }
// at this point you will have added in all of the elements into their respective arrays for all
// of the objects. You may have to alter your loop nesting, but that's the idea

Надеюсь, это поможет, Удачного кодирования!

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