javascript - Google 应用程序脚本如何从 0 中减去一个数字

标签 javascript google-apps-script google-sheets

我使用此代码从一列中减去另一列,但带有 0 的单元格保持不变。当一个单元格中有 0,而另一个单元格是 6 时,减法后应该是 -6,但是此代码在出现 0 时不执行减法。如何消除此问题

function subtractSoldBulk() {
var sheet = SpreadsheetApp.getActiveSheet();
var maxRows = sheet.getMaxRows();

var soldRange = sheet.getRange(2, 3, maxRows); // 
row, column, number of rows
var totalRange = sheet.getRange(2, 4, maxRows);

var soldValues = soldRange.getValues();
var totalValues = totalRange.getValues();
for (var row in soldValues) {
var soldCellData = soldValues[row][0];
var totalCellData = totalValues[row][0];

if (soldCellData != "" && totalCellData != "") {
  totalValues[row][0] = totalCellData - 
soldCellData;
  soldValues[row][0] = "";
}
}

soldRange.setValues(soldValues);
totalRange.setValues(totalValues);
}

最佳答案

JavaScript 是一种奇怪的语言。看看下面的表达式的计算结果,事情就会变得清晰起来:

enter image description here

请记住,JS 引擎将尝试将两个操作数转换为单一类型(在本例中为数字)。空字符串的数值为“0”,因此“if”语句表达式的计算结果将为“false”。为了避免这种情况,请使用严格比较'!=='。

关于javascript - Google 应用程序脚本如何从 0 中减去一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49591359/

相关文章:

javascript - Google Apps 脚本 OAuth - returnURL 以更新附加组件

javascript - 谷歌电子表格循环器

javascript - 在函数外部访问函数中定义的变量

javascript - 从数组中获取内部对象

javascript - 如何逐行获取html表格值并对值进行一些计算?

javascript - Google Apps 脚本自动大写

google-apps-script - 关闭浏览器后谷歌应用程序脚本停止运行

google-sheets - 如何在 Google 工作表中的单元格内动态引用另一个工作表

filtering - 如何查询功能Google Spreadsheet - 基于多个条件的数据过滤(一次检查多列)

Javascript chop HTML 文本