JavaScript中如何转义星号以查找值为"*"的对象键?
筛选对象中值为"*"或"n/a"的键
你当前的代码逻辑有误,|| '*'这部分会被JavaScript当成真值判断——字符串'*'本身是“真”值,所以整个过滤条件永远成立,自然会返回对象的所有属性。
根本不需要转义星号,只要把条件写完整就行,让判断逻辑明确是比较值是否等于'*':
keys = Object.keys(fullListObj).filter((k) => fullListObj[k] === 'n/a' || fullListObj[k] === '*');
或者为了提升可读性,可以把值提取出来单独判断:
keys = Object.keys(fullListObj).filter((k) => { const currentValue = fullListObj[k]; return currentValue === 'n/a' || currentValue === '*'; });
这样就能准确筛选出值为'n/a'或者字符串'*'的所有键了。
内容的提问来源于stack exchange,提问作者Yenmangu
相关产品推荐
相关产品推荐

