如何修改datasearch函数实现comp单元素时的数组严格匹配?
修改datasearch函数实现匹配逻辑切换
需求明确
- 单元素
comp数组(如['bbb']):仅返回包含严格匹配该元素的子数组 - 多元素
comp数组(如['bbb','fff']):保留原有逻辑——返回包含某个元素能覆盖所有comp项的子数组
修改后的代码
function datasearch() { let array = [['a', 'bbb', 'c'], ['r', 'bbbfff', 'y'], ['w', 'bbbfffkkk', 'u']]; let comp = ['bbb']; let ans = []; for (let i = 0; i < array.length; i++) { for (el of array[i]) { // 根据comp长度切换匹配逻辑 const matchCondition = comp.length === 1 ? el === comp[0] : comp.every(y => el.includes(y)); if (matchCondition) { ans.push(array[i]); break; } } } console.log(ans); }
效果验证
- 当
comp = ['bbb']时,输出结果:[[ 'a', 'bbb', 'c' ]],严格匹配单元素需求 - 当
comp = ['bbb','fff']时,输出结果:[[ 'r', 'bbbfff', 'y' ], [ 'w', 'bbbfffkkk', 'u' ]],保持原有多元素匹配逻辑不变
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

