@dc65k

Как обработать кейс в задаче на совпадение по массиву?

Всем привет, подскажите, пожалуйста, как решить задачу.
У меня есть массив данных, который приходит с бэка:
const arr2 = [
    {
        id: '1',
        title: 'one'
    },
    {
        id: '3',
        title: 'three'
    },
    {
        id: '2',
        title: 'two'
    },
    {
        id: '4',
        title: 'four'
    }
]

И массив, по которому я буду искать совпадение данных.
const arr1 = [
    {
        id: '1',
        title: 'one'
    },
    {
        id: '2',
        title: 'two'
    }
]

Мне нужно вернуть все совпадения. Например, можно это сделать так:
let arrayList = []

for (let i = 0; i < arr2.length; i++) {

    let obj = arr1.find((a) => {
        return a.title === arr2[i].title
    })

    if (obj) {
        arrayList.push(obj)
    }
}

Вопрос, как действовать в ситуации, если с бэка, будет меньше данных, чем в массиве по которому я ищу совпадения:
const arr2 = [
    {
        id: '1',
        title: 'one'
    }
]
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
Как вариант:
arr1.filter(a => arr2.find(b => Object.keys(b).every(key => a[key] === b[key])) !== null);

Или так.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы