Фильтр по условию массива - PullRequest
       3

Фильтр по условию массива

0 голосов
/ 20 декабря 2018

Допустим, у меня есть массив userIds

const userIds = ['1234', '3212', '1122']

А затем у меня есть массив объектов

const arrayOfObjects = [
  {
    _source: {itemId: ['1234'] }
  },
  {
    _source: {itemId: ['3212'] }
  },
  {
    _source: {itemId: ['1111'] }
  }
]

Я хочу отфильтровать свой массив объектов путем сопоставления идентификаторов смассив userIds

arrayOfObjects.filter(item => item._source.itemId === "what goes here?")

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Array.prototype.includes не поддерживается Internet Explorer.Если вы хотите кросс-браузерное решение, вы можете использовать методы Array.prototype.filter и Array.prototype.indexOf:

const userIds = ['1234', '3212', '1122'];
const arrayOfObjects = [{
    _source: {
      itemId: ['1234']
    }
  },
  {
    _source: {
      itemId: ['3212']
    }
  },
  {
    _source: {
      itemId: ['1111']
    }
  }
];

const filtered = arrayOfObjects.filter(o => userIds.indexOf(o['_source'].itemId[0]) > -1);

console.log(filtered)
0 голосов
/ 20 декабря 2018

Попробуйте это

arrayOfObjects.filter(item => userIds.includes(item._source.itemId[0]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...