亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Javascript中,當我分離字符串時,應該如何在拆分后為每個字符串運行該方法?

在Javascript中,當我分離字符串時,應該如何在拆分后為每個字符串運行該方法?

回首憶惘然 2023-10-14 19:08:52
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中,當我分割字符串時,分割后的每個字符串應該如何運行該方法?圖片顯示了輸入和輸出示例以及我當前的輸出。
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

這會起作用


function processPathLettersIntoArray(source) {

  const result = source.replace(/M/g, ";M").replace(/L/g, ";L").replace(/z/g, ";z").split(';').slice(1);

  return result.map(mapGroup);

}


function gcodeXY(source) {

   const [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() {

  const source = 'M 1,2 L 2,2 L 3,3 z';

  return processPathLettersIntoArray(source);

}


查看完整回答
反對 回復 2023-10-14
?
UYOU

TA貢獻1878條經驗 獲得超4個贊

這應該適合你


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);

    }


查看完整回答
反對 回復 2023-10-14
  • 2 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號