为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蛊毒传说 2022-05-26 14:37:21
基本上我有两个数组,我用它来配置按钮。第一个数组,它定义了应按顺序显示的按钮数量。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)        }    })})这是第一个索引按钮数组。如何获得匹配的数组按钮?
查看完整描述

3 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

您可以迭代buttonGroups并获得结果:

buttonGroups.map(button => {return buttons[button]})


查看完整回答
反对 回复 2022-05-26
?
郎朗坤

TA贡献1921条经验 获得超9个赞

使用filter方法。

const filterBtn = buttons.filter((btn,index) => buttonGroups.includes(index));


查看完整回答
反对 回复 2022-05-26
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

给你一个解决方案


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将返回您可以呈现的过滤按钮。



查看完整回答
反对 回复 2022-05-26
  • 3 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信