JavaScript如何过滤数组A,仅保留包含数组B中任意元素的条目
问题原因
你的代码逻辑写反了判断方向:bvc.includes(avc) 的含义是「检查B数组的当前元素是否包含A数组当前元素作为子串」,而你的需求是「检查A数组的当前元素是否包含B数组的任意元素作为子串」。
只有当A元素和B元素完全相等时,两种判断的返回结果才一致,所以只有'cqAWS1x2'被筛选出来;另外两个更长的A元素不可能被更短的B元素包含,自然无法匹配规则。
修复方案
只需要调换includes两侧的判断对象即可:
const result = a.filter(avc => b.some(bvc => avc.includes(bvc)))
运行后得到的结果和你预期的完全一致。
内容的提问来源于stack exchange,提问作者Kaisin Li
相关产品推荐
相关产品推荐

