JS遍历text数组实现相邻symbol元素用/拼接存入coinsArr的需求
修改思路
- 先将
symbols数组转为Set结构,大幅提升元素存在性的判断效率,无需嵌套循环遍历symbols数组 - 调整遍历规则:每次同时校验当前元素和下一个相邻元素是否都属于symbols集合,仅同时满足条件时才拼接存入结果
- 匹配成功后索引直接+2,跳过已处理的下一个元素,避免重复匹配
完整修改后代码
const text = [ 'aaaa', 'BTC', '08', '324', 'ETH', '233', 'yyyy', '30000', 'XRP', 'xxxxxGG', 'llll', '546', 'BCH', 'LTC', 'xxxyyy', '435', 'XLM', 'DASH', 'COIN' ]; const symbols = ['XLM', 'XTZ', 'BTC', 'DASH', 'ETH', 'LTC', 'BNB', 'BCH', 'XRP']; // 转Set提升查询效率 const symbolSet = new Set(symbols); const coinsArr = []; for (let i = 0; i < text.length - 1; i++) { const cur = text[i]; const next = text[i + 1]; // 同时校验当前元素和下一个元素都属于symbols if (symbolSet.has(cur) && symbolSet.has(next)) { coinsArr.push(`${cur}/${next}`); // 跳过下一个元素,避免重复匹配 i++; } } console.log({ 'coinsArr': coinsArr });
运行后输出结果为['BCH/LTC','XLM/DASH'],完全符合预期。
内容的提问来源于stack exchange,提问作者dumpAndDie
相关产品推荐
相关产品推荐

