为啥我从多个“if”语句中收到“无效赋值左侧”错误?

Posted

技术标签:

【中文标题】为啥我从多个“if”语句中收到“无效赋值左侧”错误?【英文标题】: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"= 是赋值,而不是比较 【参考方案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;

【讨论】:

非常感谢。由于某种原因,我只是看不到错误!

以上是关于为啥我从多个“if”语句中收到“无效赋值左侧”错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在 ProcessBuilder --Java 中收到 IllegalThreadStateException 错误?

为啥在我的反应形式中此 FormArray 更改后,我从 JSON 文件中检索对象时收到此错误消息?

为啥我从 tensorflow 网站收到此代码的语法错误? [关闭]

谁能告诉我为啥我从 GitLab 收到此“错误:作业失败:退出代码 1”消息?

为啥我从托管在 Firebase 上的 NextJs 应用程序仅针对 POST 请求收到“502 网关”错误?

为啥我收到“UPDATE 语句中的语法错误”。例外?