Javascript Lodash过滤器不能在多种条件下工作

Javascript Lodash过滤器不能在多种条件下工作,javascript,vue.js,lodash,Javascript,Vue.js,Lodash,我使用lodash库来过滤对象数组,但由于某种原因,过滤器返回的值与我传递给它的值相同,知道我做错了什么吗 这是我用来转换数据的函数: getFlattenFields(schema) { let flatten = _.flatten(schema.fields); console.log('flatten',flatten); let filtered = _.filter(flatten, item => item.elemen

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

问题在于你的状况:

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

该条件将始终计算为true,因为每个可能的
元素
将不等于
加载程序
按钮
。我猜你想要:
!(item.element=='loader'| | item.element=='button')

是否要返回不是按钮和加载器的元素?
!(item.element=='loader'| | item.element=='button')
使用DeMorgan定律,这将转换为
item.element!='加载器'&&item.element!='按钮“
(IMO)更容易阅读。