比较两个数组并过滤它们 javascript

基本上我有两个数组,我用它来配置按钮。


第一个数组,它定义了应按顺序显示的按钮数量。


buttonGroups: [ 0, 2 ]

另一个关于实际按钮的对象数组。


    buttons = [

    {

        buttonLabel: 'label1',

        cond1: true,

        cond2: false

    },

    {

        buttonLabel: 'label2',

        cond1: true,

        cond2: false

    },

    {

        buttonLabel: 'label3',

        cond1: false,

        cond2: true

    }

];

是buttonGroups配置数组。如果它只有[0, 1]那么前两个按钮将存在。如果buttonGroups只有我们应该在数组中[0, 3]存在第一个和第三个按钮。buttons


这是我尝试过的


buttonGroups.map((payload1, index1) => {

    buttons .map((payload2, index2) => {

        if(index1 === index2){

            //Display Here only the matched index from ButtonGroups

            console.log(payload2)

        }

    })

})

这是第一个索引按钮数组。如何获得匹配的数组按钮?


蛊毒传说
浏览 202回答 3
3回答

跃然一笑

您可以迭代buttonGroups并获得结果:buttonGroups.map(button => {return buttons[button]})

郎朗坤

使用filter方法。const filterBtn = buttons.filter((btn,index) => buttonGroups.includes(index));

拉丁的传说

给你一个解决方案var buttonGroups = [ 0, 2 ];var buttons = [  {    buttonLabel: 'label1',    cond1: true,    cond2: false  },  {    buttonLabel: 'label2',    cond1: true,    cond2: false  },  {    buttonLabel: 'label3',    cond1: false,    cond2: true  }];var filteredButtons = buttonGroups.map(item => {  return buttons[item];});console.log(filteredButtons);filteredButtons将返回您可以呈现的过滤按钮。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript