首页 > 解决方案 > Lodash过滤器不适用于多种条件

问题描述

我正在使用 lodash 库来过滤对象数组,但由于某种原因,过滤器返回的值与我传递给它的值相同,知道我在做什么错吗?

这是我用来转换数据的函数:

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' }, 
            ]
        ]
    }

标签: javascriptvue.jslodash

解决方案


问题是你的情况:

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

该条件将始终评估为真,因为所有可能element的情况都不等于loaderor button。我的猜测是你想要:!(item.element === 'loader' || item.element === 'button').


推荐阅读