18910140161

JavaScript-如何在私有函数中保存和创建全局变量(具有自定义名称)-堆栈溢出

顺晟科技

2022-10-18 12:42:17

44

我正在创建一个代数数学工具,在这里我取一个方程,取项,对类似的项,然后求值。(我将此作为编码练习)

对于方程a + b - 2a,我已经得到了保存在数组中的项。[";+A";,";+B";,";-2a";]。现在我想把这个改成这个:

var lTERMa = ["+a", "-2a"];
var lTERMb = ["+b"];

到目前为止,我的“修复”是将变量存储在一个有白色文本的DIV元素中,这样你就看不到它了。它相当粗糙,而且不起作用。下面是我设计的完整JavaScript代码,用于将它们存储在DIV中:

function appendinformation(info) {
document.getElementById("hiddenData").innerHTML += info;
}
function runData(bool, int) {
if (bool) {
  eval(document.getElementById("hiddenData").innerHTML)
  console.log()
}
eval(document.getElementById("hiddenData").innerHTML)
}


var termsViewed = 0;
var lTermsFound = 0;
var seenTerms = []
function processTERMpos(val) {
  if (seenTerms.includes(val.replaceAll("+", ""))) {
    termsViewed++;
    appendinformation(`var lLTERM${val.replaceAll("+", "")} = [${val}]`);
    runData()
  }
  if (!seenTerms.includes(val.replaceAll("+", ""))) {
    appendinformation(`lTERM${val.replaceAll("+", "")}.push(${val})`)
    runData()
    seenTerms.push(val.replaceAll("+", ""))
    lTermsFound++;
    termsViewed++;
  }
}
function processTERMneg(val) {
  if (seenTerms.includes(val.replaceAll("-", ""))) {
    termsViewed++;
    appendinformaion(`var lLTERM${val.replaceAll("-", "")} = [${val}]`);
    runData()
  }
  if (!seenTerms.includes(val.replaceAll("-", ""))) {
    appendinformation(`lTERM${val.replaceAll("-", "")}.push(${val})`)
    runData()
    seenTerms.push(val.replaceAll("-", ""))
    lTermsFound++;
    termsViewed++;
  }
}
for (var i = 0; i < term.length; i++) {
  var subject = term[i]
  getHiddenData();
  eval(hdata);
  if (subject.includes("+")) {processTERMpos(subject)}
  if (subject.includes("-")) {processTERMpos(subject)}
}

不要因为我糟糕的杂乱无章的编码而欺负我。我已经删除并恢复了各种代码,我确信其中的代码不再有用。

如果有人能够修复我的代码,或者能够建议我尝试重写代码的另一种方法。我已经删除和重写这段代码2个小时了,我想不出任何可以修复它的方法。


顺晟科技:

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航