javascript - 在Javascript中,当我分隔字符串时,我应该如何在拆分后为每个字符串运行该方法?
问题描述
function processPathLettersIntoArray(source){
source = source.split("M").join(";M");
source = source.split("L").join(";L");
source = source.split("z").join(";z");
source = source.split(";");
source = source.slice(1);
return source.map(mapGroup);
}
这是我的拆分方法。
function gcodeXY(source){
var [xVal, yVal] = source.split(",");
return `X${xVal} Y${yVal}`
}
let start="X0 Y0"; //another side effect :-(
function mapGroup(grp){
let s=grp.split(" ");
if (s[0]=="M"){
start=gcodeXY(s[1]);
last=s[1];
return "G0 F200 "+start;
}
else if (s[0]=="L"){
start=gcodeXY(s[1]);
last=s[1];
return "G1 F100 "+start;
}
else if (s[0]=="z"){
last=s[1];
return "G1 F100 "+start;
}
return grp;
}
这就是我希望每个字符串在拆分后实现的方式。
function path2gcode(source){
source = processPathLettersIntoArray(source);
return source;
}
这是我需要运行的方法。我想问的是,在Javascript中,当我将字符串分开时,我应该如何对拆分后的每个字符串运行该方法?图片显示了输入和输出示例以及我当前的输出。
解决方案
这应该适合你
function processPathLettersIntoArray(source){
source = source.split("M").join(";M");
source = source.split("L").join(";L");
source = source.split("z").join(";z");
source = source.split(";");
source = source.slice(1);
output = [];
for(i=0;i<source.length;i++) {
output.push(mapGroup(source[i]));
}
return output;
}
或者,.map
可以使用
function processPathLettersIntoArray(source){
source = source.split("M").join(";M");
source = source.split("L").join(";L");
source = source.split("z").join(";z");
source = source.split(";");
source = source.slice(1);
return source.map(mapGroup);
}
推荐阅读
- flutter - 无法使用外部小部件设置状态
- firebase - 带有规则的 Firestore Where 语句?
- mysql - MYSQL 8.0.17 CHECK 即使已实现也无法正常工作
- windows - 如何替换文件中的随机 IP 地址(Perl、Windows)
- spring-boot - Keycloak springboot 适配器不允许设置 keycloak.policy-enforcer-config.user-managed-access 属性
- ios - 带有对象映射器的动态键
- tensorflow - TFLiteConverter 会自动量化 Keras 模型吗?
- c# - 如何有选择地从现有 JSON 字符串中删除一些属性?
- servicenow - Rest API 以获取选定的布局/视图
- selenium - 针对 AWS Fargate selenium hub 的量角器/Selenium ETIMEDOUT 错误