Реагируйте на редукцию, как сравнить два массива obj с фильтром - PullRequest
0 голосов
/ 09 апреля 2020

в действии моего Reduur я получаю массив, который я хотел бы отфильтровать с другой таблицей, я хотел бы проверить определенное значение, как включить другую таблицу в фильтр? (без возврата), потому что я поставлю ле

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' и 'picollo', потому что у них есть 'max' и 'min' равно 'goku' и 'vegeta'

1 Ответ

1 голос
/ 09 апреля 2020

Вы можете использовать метод массива filter и some, чтобы упростить ответ.

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...