Javascript Lodash过滤器不能在多种条件下工作
我使用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
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)更容易阅读。