Фильтр Лодаша не работает с несколькими условиями - PullRequest
0 голосов
/ 18 октября 2019

Я использую библиотеку lodash для фильтрации массива объектов, но по какой-то причине фильтр возвращает то же значение, которое я передаю ему, есть идеи, что я делаю неправильно?

Это функция Iиспользовать для преобразования данных:

getFlattenFields(schema)
    {
        let flatten = _.flatten(schema.fields);
        console.log('flatten',flatten);
        let filtered = _.filter(flatten, item => item.element != 'loader' || item.element != 'button' );
        console.log('filtered',filtered);
        return filtered;
    },

И моя переменная схемы - это объект:

formSchema: 
    {
        fields: 
        [
            [ 
                { id: 'email', label: '', default: '', element:'input', type: 'text' },
                { element: 'button', text:'Enviar', icon:'fas fa-reply' }, 
            ],
            [
                { element: 'loader' }, 
            ]
        ]
    }

1 Ответ

1 голос
/ 18 октября 2019

Проблема заключается в вашем состоянии:

item => item.element != 'loader' || item.element != 'button'

Это условие всегда будет оцениваться как истинное, поскольку каждое возможное значение element будет неравнозначно либо loader, либо button. Я думаю, вы хотите: !(item.element === 'loader' || item.element === 'button').

...