想要使用show_menus数组显示子菜单

时间:2019-07-04 17:00:57

标签: javascript arrays object

  • 要使用show_menus数组显示子菜单。
  • 我正在使用javascript对象数组。
  • show_menus数组是动态的。
<script>
     var show_menus = ['sub_menu_2', 'sub_menu_3'];
            var items = [{
                label: 'menu1',
                items: [
                    { label: 'sub_menu_1', icon: 'fa-plus' },
                    { label: 'sub_menu_2', icon: 'fa-download' }
                ]
            },
            {
                label: 'menu2',
                items: [
                    { label: 'sub_menu_3', icon: 'fa-refresh' },
                    { label: 'sub_menu_4', icon: 'fa-repeat' }
                ]
            }];

            var my_menus = items.map(el => {
                return el.items;
            });

           var menues_two = my_menus.filter(word =>{

           });

</script>

1 个答案:

答案 0 :(得分:1)

我想这就是你想要的。但是,如果不是这样,我可能会误解了您的问题。

var show_menus = ['sub_menu_2', 'sub_menu_3'];
var items = [{
    label: 'menu1',
    items: [{
        label: 'sub_menu_1',
        icon: 'fa-plus'
      },
      {
        label: 'sub_menu_2',
        icon: 'fa-download'
      }
    ]
  },
  {
    label: 'menu2',
    items: [{
        label: 'sub_menu_3',
        icon: 'fa-refresh'
      },
      {
        label: 'sub_menu_4',
        icon: 'fa-repeat'
      }
    ]
  }
];

var my_menus = items.map(el => {
  return el.items;
});
//console.log(my_menus);


var menues_two = [];

my_menus.forEach(word => {
  var men = word.filter(elm => {
    return show_menus.includes(elm['label']);
  });
  menues_two.push(men);
});

console.log(menues_two);