首页 > 解决方案 > 将列表理解python转换为javascript

问题描述

我正在尝试将一些 python 代码转换为 JavaScript 代码。

a我有一个以参数为输入的 python 列表理解。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 循环中缺少什么。

标签: javascriptpython

解决方案


使用for循环而不是while因为您忘记i在第二个循环结束时将索引重置为 0。

let aTrimmed = "bac";
let aSubstring = [];


for(let j = 1; j < aTrimmed.length+1; j++) {
    for(let i = 0; i < aTrimmed.length - j + 1; i++) {
       aSubstring.push(aTrimmed.slice(i, i + j));
    }
}
alert(aSubstring);

推荐阅读