【问题标题】:Why do I get an "Invalid assignment left-hand side" error from multiple "if" statements?为什么我从多个“if”语句中收到“无效赋值左侧”错误?
【发布时间】:2019-05-09 03:05:31
【问题描述】:

我的脚本知识仅限于一些旧语言,如 VBA-Excel。 在尝试将 VBA-Excel 脚本转换为 Google Apps 脚本时,为什么会出现 “Invalid assignment left-hand side” 错误?似乎我不能继续有条件地替换与脚本相同的变量,该脚本运行大约 1500 行,并根据各种检查条件多次替换许多变量。最后,最后的条件状态作为输出返回。如果我不能在脚本进行时有条件地更改变量,它真的会破坏我的整个转换希望:

var Elevation = activeSheet.getRange(7,2).getValue();
var Desert = activeSheet.getRange(8,2).getValue();
var Highlands_mod = 0;

if (Elevation == "High Mountains") {Highlands_mod = -20;}
if (Elevation == "Highlands" && Desert = "No") {Highlands_mod = -10;}
if (Elevation == "Highlands" && Desert = "Yes") {Highlands_mod = 10;}
if (Elevation == "High Mountains") {Elevation = "Highlands";}

我已经尝试了各种不同的格式。一旦我有第二组尝试修改/替换相同变量的条件,例如在前 3 个“if”语句中的任何一个之间,就会发生错误。我还想知道第一个和第四个“if”语句是否可能会超出预期的顺序并导致错误。

我正在尝试在不花费数周时间学习一门新语言的情况下进行可能很容易的转换(我希望如此),因此我感谢任何见解。

【问题讨论】:

  • Elevation == "Highlands" && Desert = "No"= 是赋值,而不是比较

标签: javascript google-apps-script google-sheets comparison-operators equality-operator


【解决方案1】:

你有一个等于你正在检查沙漠的地方。

解释:

let x = 10; // 用值 10 初始化 x

if (x == 10) {} // 这会检查 x 的值是否为 10

if (x === 10) {} // 这会检查x 的值和类型是否x 是一个数字并且它的值等于10

它应该是双等于而不是一个:

var Elevation = activeSheet.getRange(7,2).getValue();
var Desert = activeSheet.getRange(8,2).getValue();
var Highlands_mod = 0;


if (Elevation == "High Mountains") {
  Highlands_mod = -20;
}
if (Elevation == "Highlands" && Desert == "No") {
  Highlands_mod = -10;
}
if (Elevation == "Highlands" && Desert == "Yes") {
  Highlands_mod = 10;
}
if (Elevation == "High Mountains") {
  Elevation = "Highlands";
}

【讨论】:

  • 非常感谢您的回复。我已经知道规则,但现在是凌晨 3 点我的时间,我一直盯着屏幕无法弄清楚大约一个小时知道。现在我觉得问真的很愚蠢。我想这意味着该睡觉了:)
  • 太棒了,哦,是的,睡眠对健康很重要。晚安@cap708j
【解决方案2】:

您使用的是= 而不是=====

if (Elevation == "Highlands" && Desert = "No") {Highlands_mod = -10;}

记住:= 分配一个值,===== 比较两个值。

将您的代码更改为:

 if (Elevation == "Highlands" && Desert == "No") {Highlands_mod = -10;}

【讨论】:

  • 非常感谢。由于某种原因,我只是看不到错误!
猜你喜欢
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
  • 2017-11-30
  • 2015-01-15
  • 2011-10-31
  • 2017-01-16
相关资源
最近更新 更多