javascript - 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' },
]
]
}
解决方案
问题是你的情况:
item => item.element != 'loader' || item.element != 'button'
该条件将始终评估为真,因为所有可能element
的情况都不等于loader
or button
。我的猜测是你想要:!(item.element === 'loader' || item.element === 'button')
.
推荐阅读
- java - 我怎样才能摆脱所有错误:无法从 android.os 包的 Binder.java 类中解决符号..?
- python - python中的多个条形图
- php - Laravel 在自定义刀片指令中使用数据库中的变量
- angular - 打字稿:将文件数据加载为 Blob
- c# - Unity2D:被发现时将敌人移向物体
- stanford-nlp - 如何在 python 中实现基于 Tokensregex 的实体提取
- javascript - Unable to load image when passing it as a prop
- mpandroidchart - HorizontalBarChart moveViewToX 不起作用
- javascript - 如何在我的代码中修复此循环错误(循环估值错误)
- wordpress - Wordpress 帖子名称固定链接 404