如何在JavaScript数组筛选时仅返回完全匹配的字符串结果
问题原因
你当前使用的includes()方法作用是判断字符串是否包含指定子串,只要输入的内容是symbol字段值的一部分就会判定为匹配,所以搜索"b"、"bt"这类子串时都会返回结果。
解决方法
将筛选逻辑替换为全等匹配===即可实现仅完全匹配时返回结果,修改后的代码如下:
let coinsArray = [{ symbol: "btc" }] // 先获取搜索输入值 let searchVal = $(".InpSearchCoin").val() // 将includes替换为全等匹配 let newStatus = coinsArray.filter(coin => coin.symbol === searchVal) console.log(newStatus)
如果不需要区分大小写的完全匹配,可以将判断逻辑调整为:
let newStatus = coinsArray.filter(coin => coin.symbol.toLowerCase() === searchVal.toLowerCase())
修改后只有输入内容和symbol值完全一致(包含字符长度、大小写完全匹配)时才会返回对应结果,搜索"b"、"bt"时会返回空数组。
内容的提问来源于stack exchange,提问作者user17302724
相关产品推荐
相关产品推荐

