我目前正在使用数组includes()
方法来过滤对象。例如。
products.filter((product) => (
product.tags.includes(someTag)
))
但是,我希望有一些默认的someTag
值始终返回true - 基本上是默认值"不过滤"价值会是。但我无法想出一个。等效于String.prototype.indexOf
中的空字符串,但我知道没有可比较的值。
如果someTag未定义,我当然不能完全调用该函数,没有这个选项会很好。 (我最肮脏的想法是使用product.tags[0]
,但这对于空数组不起作用,并且不可重复使用。)
想法?或者这是不可能的。
答案 0 :(得分:2)
没有这样的价值。
更改您的功能,以便检查神奇值并且不会调用includes
。
products.filter((product) => (
someTag === undefined || product.tags.includes(someTag)
))
答案 1 :(得分:0)
没有这样的价值。
要不过滤数组,请勿调用includes
products.filter(product => someTag === specialTag || product.tags.includes(someTag))
或换出完整的谓词函数
products.filter(someTag === specialTag
? product => true
: product => product.tags.includes(someTag)
)
或根本不打电话给filter
someTag === specialTag
? products
: products.filter(product => product.tags.includes(someTag))