簡體   English   中英

將python函數轉換為Javascript / node.js

[英]convert python function to Javascript/node.js

嘗試使用node.js模擬python函數的類似行為。

這是python函數:

輸入(對於兩個功能):

(9x11)JHASGJHAYGGSDFLRAAAA(16x7)ABCDEFG
def evaluate_expression(sub_string):
    var re = require('re')
    regex = r'^([(](\d+)[xX](\d+)[)])?'
    prog = re.compile(regex)
    op = prog.match(sub_string)
    print('in evaluate exp', sub_string)
    expression_list = list(op.groups())
    # print(expression_list)
    str_len = int(expression_list[1])
    itr = int(expression_list[2])
    endindex = op.end()
    return str_len, itr, endindex-1

輸出:

5 9 11

到目前為止,我在JS中已經嘗試過:

evaluate_expression = (sub_string)=>{
    const a =/^([(](\d+)[xX](\d+)[)])?/g;
    const b = sub_string.match(a);
    // console.log(sub_string)
    let extratkted = b[0].split("x");
    return {
      str_len:extratkted[0].split("(")[1],
      itr:extratkted[1].split(")")[0],
    endpoint:extratkted.length+extratkted.length+extratkted.length-2
  }

 }

輸出:

{str_len:9,itr:11,endpoint:4}

預期輸出: {str_len:5,itr:9,endpoint:11}

看來您的價值觀不錯,但分配順序錯誤。

在Python中,您使用[1][2]但是在Javascript中,您使用不同的順序[1][0] 如果按不同順序分配值,則應獲得正確的結果。


在Python中,您具有endindex-1但在JavaScript中,您執行的操作與endindex-2類似,因此您得到4而不是5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM