我正在尝试将一些python代码转换为JavaScript代码
我有一个python列表理解,它将参数a
作为输入a
是一个字符串,如“bac”
asubstring = [a[i:i + j] for j in range(1, len(a) + 1) for i in range(len(a) - j + 1)]
输出为:['b', 'a', 'c', 'ba', 'ac', 'bac']
我通过以下操作将其转换为JavaScript:
let j = 1
let i = 0
while(j < aTrimmed.length+1) {
while(i < aTrimmed.length - j + 1) {
aSubstring.push(aTrimmed.slice(i, i+j))
i++
}
j++
}
然而,我的输出是:[ 'b', 'a', 'c' ]
我不确定两个while循环中缺少了什么
此版本更适用于Unicode基本多语言平面之外的字符。尽管grapheme集群仍然存在问题
问题是您没有重置内部循环中的
i
变量。在Python版本中,for i in range(...)
总是使i
从0
开始。另外,声明一个迭代变量,然后使用while
循环(以增加该变量为结尾)有点奇怪,为什么不直接使用for
循环呢还要注意
<=
而不是< ... + 1
使用
for
循环而不是while
,因为您忘记了在第二个循环结束时将i
索引重置为0