You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript:如何同时获取数组中指定起止字符的所有索引对?

直接获取起始/结束字符索引对的方法

当然可以直接遍历数组一次就拿到目标索引对,不用先分别收集两个字符的索引再配对,具体实现思路和代码如下:

  • 遍历数组时,实时记录最近遇到的起始字符索引
  • 当碰到结束字符时,如果存在未配对的起始索引,就将这组索引对存入结果,同时重置起始索引记录(避免同一个起始字符匹配多个结束字符)

示例代码(Python)

arr = ['a', 'b', 'c', 'd', 'e', 'a', 'c']
start_char = 'a'
end_char = 'c'
index_pairs = []
last_start = None

for idx, char in enumerate(arr):
    if char == start_char:
        last_start = idx
    elif char == end_char and last_start is not None:
        index_pairs.append([last_start, idx])
        last_start = None  # 重置,确保一个起始只匹配最近的下一个结束

print(index_pairs)  # 输出: [[0, 2], [5, 6]]

这种方法的好处是只需要一次遍历,空间开销更小,而且能自然保证配对的合理性——每个起始字符只会匹配它之后第一个出现的结束字符,完全符合你示例中的需求。

内容的提问来源于stack exchange,提问作者christian20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 18:24:52