JavaScript如何提取text数组中entry元素后连续的多个数字?
代码修改方案
- 核心逻辑调整:找到属于entry数组的元素后,不要只取后1位,从当前位置的下一位开始逐位判断,只要是数字就加入结果,遇到非数字就停止当前段的遍历
- 修改后完整代码如下:
const entry = [ 'ENTRY', 'ZONE', 'ENTRI', 'ENTRE', 'ENTR', 'ZON', 'ZONI' ]; const text = ['HI', 'GOOD', 564, 'CLX', 'ENTRI', 'YYY', 'ENTRY', 657, 780, 34, 'XXX']; const set = new Set(entry); let result = []; for (let i = 0; i < text.length; i++) { if (set.has(text[i])) { // 从当前元素的下一位开始匹配连续数字 let j = i + 1; while (j < text.length && typeof text[j] === 'number') { result.push(text[j]); j++; } } } console.log(result)
- 运行输出:
[657, 780, 34],符合预期需求。
内容的提问来源于stack exchange,提问作者dumpAndDie
相关产品推荐
相关产品推荐

