Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как обработать кейс в задаче на совпадение по массиву? (https://javascript.ru/forum/dom-window/80361-kak-obrabotat-kejjs-v-zadache-na-sovpadenie-po-massivu.html)

dc65k 27.05.2020 16:04

Как обработать кейс в задаче на совпадение по массиву?
 
Всем привет, подскажите, пожалуйста, как решить задачу.
У меня есть массив данных, который приходит с бэка:
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'
    }
]

рони 27.05.2020 16:47

dc65k,
:-? в чём сомнения?

рони 27.05.2020 16:59

dc65k,
тоже самое немного по другому
<script>
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'
    }
];
const  arrayFilter = (array, sample) => array.filter(({title : a})  => sample.some(({title : b}) => a === b));
let arrayList = arrayFilter(arr2, arr1);
document.write(JSON.stringify(arrayList, "", 4));
</script>

dc65k 27.05.2020 18:32

Спасибо.

рони 27.05.2020 19:08

dc65k,
не плодите однотипные темы

рони 27.05.2020 19:14

Цитата:

Сообщение от dc65k
Как отфильтровать массив , вернуть, то, что не совпало?

!sample.some


Часовой пояс GMT +3, время: 13:43.