javascript - 将列表理解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 循环中缺少什么。
解决方案
使用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);
推荐阅读
- windows - 以下脚本有什么作用?
- macos - Metal 使用计算着色器模拟几何着色器
- json - 更新 JSON 文件 NodeJS
- r - How to detect warnings in R and have a while loop run on a function as along as warnings are outputted?
- android - 如何将此代码更改为 AsyncTask?
- python - 高阶函数中的闭包魔法。
- python - 不支持身份验证插件“caching_sha2_password”
- ios - 在 Xcode 界面构建器中创建动态调整大小的 UILabel
- sql - SQL 循环和执行查询 - 必须声明标量变量
- javascript - 防止点击处理程序在孩子身上触发