首页 > 解决方案 > 将 OR 条件添加到过滤器不会返回任何结果

问题描述

我在 afilter之前使用 amap来创建树状结构。

使用以下代码段,它可以正确返回我想要的数据:

  const nest = (tree, cod = basenode, link = 'link_id') =>
    (tree.filter(item => (item[link].toUpperCase() == cod.toUpperCase())).map(item => ({ ...item, productstructures: [{ operations: [{ materials: nest(tree, item.cod) }] }] })));

但是,将 OR 条件添加到filter函数不会返回任何结果。至少 OR 条件不应该给我完全相同的结果吗?

  const nest = (tree, cod = basenode, link = 'link_id') =>
    (tree.filter(item => (item[link].toUpperCase() == cod.toUpperCase())||(item[link]=="")).map(item => ({ ...item, productstructures: [{ operations: [{ materials: nest(tree, item.cod) }] }] })));

提前致谢!

标签: javascript

解决方案


括号不匹配使用这个,如果它有帮助,请告诉我。

const nest = (tree, cod = basenode, link = 'link_id') =>
    (tree.filter(item =>( (item[link].toUpperCase() == cod.toUpperCase()) ||(item[link]=="") ) ).map(item => ({ ...item, productstructures: [{ operations: [{ materials: nest(tree, item.cod) }] }] })));

推荐阅读