以下为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语句逐个进行判断。