以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!

BFE.devAI解答 - JavaScript 代码题
119. 创建一个tokenizer

function* tokenize(input) {  const OPERATOR = /[+\-*/()]/;  const NUMBER = /\d/;  let tokens = "";  for (const char of input) {    if (char === " ") continue;    if (char.match(OPERATOR)) {      if (tokens !== "") {        yield tokens;        tokens = "";      }      yield char;      continue;    }    if (char.match(NUMBER)) {      tokens += char;      continue;    }  }  if (tokens !== "") {    yield tokens;  }}

判断字符是否为运算符或数字,把连续的数字拼接成一个token然后yield出去就行了。注意空格需要跳过。示例代码中用了正则表达式匹配,也可以用if语句逐个进行判断。