【问题标题】:React redux how to compare two obj arrays with filterReact redux如何用过滤器比较两个obj数组
【发布时间】:2020-04-09 15:41:06
【问题描述】:

在我的 reducer 的作用下 我得到一个数组, 我想用另一个表过滤, 我想检查某个值 如何在过滤器中包含另一个表? (不退货) 因为我会放一个乐

dbz: [{
      min: 300
      max: 9000
      name: 'goku'
    },

    {
      min: 200
      max: 7000
      name: 'vegeta'
    },

  ],

  dbs: [{
      min: 200
      max: 7000
      name: 'picollo'
    },

    {
      min: 300
      max: 9000
      name: 'gohan'
    },

    {
      min: 20
      max: 800
      name: 'trunks'
    },

    {
      min: 10
      max: 700
      name: 'goten'
    },

  ],


  let samepower = dbs.filter(({
    sayien
  }) => sayien.min !== dbz.min && sayien.max !== dbz.max);

这个想法是有一个只有 'goten' 和 'trunks' 的数组。 删除 'gohan' 和 'piccollo' 因为它们的 'max' 和 'min' 等于 'goku' 和 'vegeta'

【问题讨论】:

    标签: javascript arrays reactjs redux filtering


    【解决方案1】:

    您可以使用数组的方法filtersome 来简化答案。

    const filtered = (dbs, dbz) => {
      return dbs.filter((ii) =>
        dbz.some((jj) => ii.min === jj.min && ii.max === jj.max)
      );
    };
    
    const database = {
      dbz: [
        { min: 300, max: 9000, name: "goku" },
        { min: 200, max: 7000, name: "vegeta" },
      ],
      dbs: [
        { min: 200, max: 7000, name: "picollo" },
        { min: 300, max: 9000, name: "gohan" },
        { min: 20, max: 800, name: "trunks" },
        { min: 10, max: 700, name: "goten" },
      ],
    };
    console.log(filtered(database.dbs, database.dbz));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 2020-01-18
      • 2019-11-27
      • 2016-10-24
      相关资源
      最近更新 更多