首页 > 解决方案 > 根据属性值过滤嵌套的对象数组

问题描述

嗨,我是 JavaScript 新手,我有嵌套的对象数组,我的目标是过滤掉角色数组由值组成的对象,例如“ _admin”' '可以是任何东西。我的数据看起来像这样

[
    {
        name:'tom',
        process:'flipkart',
        master:'pharma',
        profiles: [
            {
                level:'begginer',
                language:'hindi',
                role:['flp_admin','flp_teacher']
            }
        ]
    
    
    },
    {
        name:'jeo',
        process:'amazon',
        master:'science',
        profiles: [
            {
                level:'begginer',
                language:'english',
                role:['amz_admin']
            }
        ]
    
    
    },
    {
        name:'jerry',
        process:'email',
        master:'it',
        profiles: [
            {
                level:'begginer',
                language:'urdu',
                role:['eml_teacher']
            }
        ]
    
    }
]

谁能告诉我如何过滤对象

标签: javascriptarrays

解决方案


密码笔

const data = [
   {
      name: "tom",
      process: "flipkart",
      master: "pharma",
      profiles: [
         {
            level: "begginer",
            language: "hindi",
            role: ["flp_admin", "flp_teacher"]
         }
      ]
   },
   {
      name: "jeo",
      process: "amazon",
      master: "science",
      profiles: [
         {
            level: "begginer",
            language: "english",
            role: ["amz_admin"]
         }
      ]
   },
   {
      name: "jerry",
      process: "email",
      master: "it",
      profiles: [
         {
            level: "begginer",
            language: "urdu",
            role: ["eml_teacher"]
         }
      ]
   }
];

const filterData = data.filter(({ profiles }) => {
   return profiles.filter(({ role }) => {
      return role.some(str => str.includes('_admin'))
   }).length
})

console.log(filterData)


推荐阅读