JavaScript中如何修改映射取值函数实现includes()模糊匹配效果
解决方案
你只需要遍历映射对象的键,逐一用includes判断传入字符串是否包含对应子串,匹配到就返回对应值即可,同时保持和原getData一致的优先匹配第一个命中规则、无匹配返回undefined的行为:
function getDataMapp(str) { const mapp = { '12/': 'one', '13/': 'two', }; for (const matchKey of Object.keys(mapp)) { if (str.includes(matchKey)) { return mapp[matchKey]; } } }
补充说明
- 该实现和原函数逻辑完全一致:如果传入字符串同时包含多个匹配子串,会按映射对象中键的定义顺序返回第一个命中的对应值,调整匹配优先级只要修改键的排列顺序即可
- 无匹配场景下会和原函数一样隐式返回
undefined,无需额外写return语句
内容的提问来源于stack exchange,提问作者Asking
相关产品推荐
相关产品推荐

