Возврат полей путем сравнения с массивом объектов с использованием Map Filter - PullRequest
3 голосов
/ 17 апреля 2019

Попробуйте вернуть поле array1 и другое поле array2, для сравнения.

У меня есть два массива объектов (клиент и клиент). Я хочу вернуть идентификатор клиента и имя клиента, где идентификатор клиента равен идентификатору клиента. Для этой цели я хочу использовать карту, фильтр, но не могу понять, как я могу использовать здесь, это моя попытка,

       let clientcontract=this.state.addclient.filter(client=>{
        return(
            this.state.customer.filter(cust=>{
                return (
                    cust.id===client.id  // comparing customer and client id
                )
            })
        )
    });

Этот подход используется для получения поля, в котором оба идентификатора клиента и клиента одинаковы, но я не знал, как я могу получить имя клиента и идентификатор клиента и вернуть его в клиентский контракт, так как я использую фильтр впервые, поэтому сталкиваюсь с проблемой в нем.

1 Ответ

1 голос
/ 17 апреля 2019

Вы можете использовать функцию some() внутри функции filter().И наконец, чтобы получить имя клиента , используйте функцию map() - см. Ниже:

let clientcontract=this.state.customer.filter(cust => {
    return this.state.addclient.some(client => {
        return cust.id === client.id  // comparing customer and client id
    });
}).map(cust => cust.name);
...