Как вернуть отфильтрованный массив объектов, которых нет в значении массива в javascript - PullRequest
1 голос
/ 18 июня 2020

Я хочу отфильтровать массив объектов, у которых Street_ID не существует в данном массиве

Пример:

[{UserID: “0GO63EQTFEZ7HO6FBDPX”, UserAge: “20”, Street_ID: “56478” }, { UserID: “REGOPQTFEZ7HO6FBDPX”, UserAge: “30”, Street_ID: “98474” }, { UserID: “524EREQTFEZ7HO6FBDPX”, UserAge: “80”, Street_ID: “25697” }]

Со значением массива [25697,56478]

Мой ожидаемый результат должен выглядеть так:

[{ UserID: “REGOPQTFEZ7HO6FBDPX”, UserAge: “30”, Street_ID: “98474” }]

Поскольку Street_ID 98474 отсутствует в этом массиве [25697,56478]

Это то, что пытается показать far

        const streets = Response.filter(street => {
            for (let index = 0; index < userArray.length; index++) {
                const element = userArray[index];
                return street.Street_ID !== element;
            }
        });


console.log(streets);

но я получаю это как возврат

[{UserID: “0GO63EQTFEZ7HO6FBDPX”, UserAge: “20”, Street_ID: “56478” }, { UserID: “REGOPQTFEZ7HO6FBDPX”, UserAge: “30”, Street_ID: “98474” }]

Спасибо за ПОМОЩЬ !!!

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Вы можете использовать Array.prototype.includes

const data = [
  {
    UserID: '0GO63EQTFEZ7HO6FBDPX',
    UserAge: '20',
    Street_ID: '56478',
  },
  {
    UserID: 'REGOPQTFEZ7HO6FBDPX',
    UserAge: '30',
    Street_ID: '98474',
  },
  {
    UserID: '524EREQTFEZ7HO6FBDPX',
    UserAge: '80',
    Street_ID: '25697',
  },
];
//I changed the ids to strings
const userArray = ['25697', '56478'];
console.log(
  'filtered result:',
  data.filter(
    ({ Street_ID }) => !userArray.includes(Street_ID)
  )
);
0 голосов
/ 18 июня 2020

@ HRM понял это за несколько секунд

data.filter(({Street_ID})=>!userArray.includes(Street_ID)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...