首页 > 解决方案 > 我的 IF-ELSE 语句总是返回 Google Appscript 中的第一个值。到处都试了调试

问题描述

我正在尝试通过查看我的学生成绩来自动创建 Google 文档。我有一个 if 语句来检查分数,分配一个值和一个打印相同的函数。一切似乎都有效,除了我的 if 语句总是返回第一个值。我该如何解决?

这是我的代码:

function createPdf() {
  const ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Summary');
  const lastRow = ws.getLastRow();
  const score = ws.getRange(lastRow, 3).getValue();
  const templateDoc = DriveApp.getFileById('test1');

  const newTempFile = templateDoc.makeCopy(tempFolder);

  const openDoc = DocumentApp.openById(newTempFile.getId());
  const body = openDoc.getBody();
  const paragraph = body.getParagraphs();
  body.replaceText('{percentage}', percentage);
  body.replaceText('{score}', score);
  if (50.0 < score < 120.0) {
    paragraph[13].appendText('POOR') && paragraph[17].appendText('xyz.');
  } else if (score >= 120.0) {
    paragraph[13].appendText('GOOD') && paragraph[17].appendText('abc.');
  } else {
    paragraph[13].appendText('VERY POOR') && paragraph[17].appendText('ouy.');
  }

  openDoc.saveAndClose();
}

标签: javascript

解决方案


你的方法总是true,因为第一部分

50.0 < score

要么true要么false。与布尔值进行下一次比较

boolean < 120.0

布尔值转换为数字0or1并且该值始终小于120.

为了克服这个问题,您需要与逻辑 AND&&进行两次比较。

50.0 < score && score < 120.0

推荐阅读