Использование find для фильтрации массива с двумя аргументами - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь отфильтровать свой массив объектов, передающий два параметра, но он не работает ... Мой массив содержит объект со значениями, которые я передаю по параметрам, но результат пуст

const item = this.lista.find(i => i.number === rule.number &&  i.name === rule.name);

Я также пытался использовать «фильтр», но та же проблема ...

const item = this.lista.filter(i => i.number === rule.number).filter(i => 
 i.name === rule.name);

Вот мой полный массив:

  this.lista= [
            {number: 0, name: 'jose'},
            {number: 2, name: 'maria'},
            {number: 3, name: 'martha'},
            {number: 4, name: 'ana'},
            {number: 4, name: 'petter'},
        ];

А это объект правила:

rule = new Rule();
rule.number = 4;
rule.name = 'ana';

Есть лучший способ сделать это?

1 Ответ

0 голосов
/ 06 мая 2019

Я не уверен, в чем проблема в вашем коде, но я воспроизвел простой пример вашего кода, и он работает так, как ожидалось.

const rule = {};
rule.number = 4;
rule.name = 'ana';

const lista = [{
    number: 0,
    name: 'jose'
  },
  {
    number: 2,
    name: 'maria'
  },
  {
    number: 3,
    name: 'martha'
  },
  {
    number: 4,
    name: 'ana'
  },
  {
    number: 4,
    name: 'petter'
  },
];

const item = lista.find(i => i.number === rule.number && i.name === rule.name);

console.log(item);
...