编辑代码

// 括号匹配如果括号匹配错误输出error,匹配成功输出所有在()中的内容。输入:((2+3)+(3*4))+2
function handleStr(str) {
  // 检查
  let stack = [];
  let record = new Map();
  let count = 0;

  // 每个括号都有对应的一个字符串,遍历到word的时候对象里所有的都要去加字符串
  //   {
  //     id : ""
  //   }
  for (let i = 0; i < str.length; i++) {
    if (str[i] === "(") {
      stack.push([")", ++count]);
      record.set(count, "");
    } else if (str[i] === ")") {
      const cur = stack.pop();
      if (cur[0] !== ")") {
        throw Error("error");
      }
      // 处理record中的元素

      const curRecord = record.get(cur[1]) + "";
      console.log(curRecord.substring(1));

      record.delete(cur[1]);
    }

    record.forEach((value, key) => {
      record.set(key, value + str[i]);
    });
  }
  if (stack.length !== 0) {
    throw Error("error");
  }
  // 通过检验,得到输出结果
}

handleStr("((2+3)+(3*4+(2/5)))+2");