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

Javascript 比较两个数组并过滤它们,javascript,arrays,reactjs,loops,array.prototype.map,Javascript,Arrays,Reactjs,Loops,Array.prototype.map,基本上我有两个数组,我用它来配置按钮 第一个数组,定义应显示多少个按钮以及按钮的顺序 buttonGroups: [ 0, 2 ] 另一个表示实际按钮的对象数组 buttons = [ { buttonLabel: 'label1', cond1: true, cond2: false }, { buttonLabel: 'label2', cond1: true,

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

第一个数组,定义应显示多少个按钮以及按钮的顺序

buttonGroups: [ 0, 2 ]
另一个表示实际按钮的对象数组

    buttons = [
    {
        buttonLabel: 'label1',
        cond1: true,
        cond2: false
    },
    {
        buttonLabel: 'label2',
        cond1: true,
        cond2: false
    },
    {
        buttonLabel: 'label3',
        cond1: false,
        cond2: true
    }
];
按钮组是配置数组。如果只有[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)
        }
    })
})

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

这里有一个解决方案

var buttonGroups=[0,2]; 变量按钮=[ { 按钮标签:“标签1”, 赖斯1:是的, 第二条:错 }, { 按钮标签:“label2”, 赖斯1:是的, 第二条:错 }, { 按钮标签:“label3”, 第1条:错, 赖斯2:是的 } ]; var filteredButtons=buttonGroups.mapitem=>{ 返回按钮[项目]; };
console.logfilteredButtons 给你一个解决方案

var buttonGroups=[0,2]; 变量按钮=[ { 按钮标签:“标签1”, 赖斯1:是的, 第二条:错 }, { 按钮标签:“label2”, 赖斯1:是的, 第二条:错 }, { 按钮标签:“label3”, 第1条:错, 赖斯2:是的 } ]; var filteredButtons=buttonGroups.mapitem=>{ 返回按钮[项目]; }; console.logfilteredButtons 您可以迭代按钮组并获得结果:

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

buttonGroups.map(button => {return buttons[button]})
使用过滤方法

使用过滤方法


那将是错误的顺序。buttonGroups还指示按钮的顺序,请尝试将buttonGroups设置为[3,1]的代码。解决方案要简单得多,是:buttonGroups.mapi=>buttons[i],它的顺序可能不正确。buttonGroups还指示按钮的顺序,请尝试将buttonGroups设置为[3,1]的代码。解决方案要简单得多,是:buttonGroups.mapi=>buttons[i]